--- type: digest title: "소화 노트: Topic_Programming/Topic_C" generated_at: 2026-07-04T18:03:11.445Z sources: ["00_INDEX", "C_Newline", "C_Null", "C_Macros"] --- # 소화 노트: Topic_Programming/Topic_C > ⚙️ 자동 생성 (sleep-time 사전 소화) — **원문이 항상 우선**입니다. 소스가 바뀌면 자동 재생성되며, 이 파일은 삭제해도 안전합니다. ## 예상 질문과 답 - **Q: C 언어에서 `\n`은 단순히 줄 바꿈 명령인가요?** — A: 아닙니다. `\n`은 커서를 다음 줄의 시작점으로 이동시키는 특수 문자(ESCAPE SEQUENCE)입니다. 따라서 `printf()` 호출 하나에 여러 개의 `\n`을 포함하여 멀티라인 출력을 구현할 수 있습니다. [C New Lines] - **Q: `\n\n`을 사용하면 왜 빈 줄이 생기나요?** — A: `\n`은 커서를 한 줄 아래로 이동시키므로, 두 개의 `\n`을 연속으로 사용하면 커서가 시각적으로 한 줄을 건너뛰게 되어 빈 줄이 생성됩니다. [C New Lines] - **Q: C에서 `NULL` 포인터는 언제 사용해야 하나요?** — A: `fopen()`이나 `malloc()`과 같은 함수가 실패했을 때, 해당 자원(파일 또는 메모리)이 존재하지 않음을 알리는 "실패 신호"로 `NULL`을 반환합니다. 따라서 포인터를 사용하기 전에는 반드시 `if (ptr == NULL)` 체크를 해야 합니다. [C NULL] - **Q: C의 매크로(`\#define`)는 일반 변수와 어떻게 다른가요?** — A: 매크로는 컴파일러가 코드를 보기 *이전*에 전처리기(Preprocessor) 단계에서 발생하는 순수한 텍스트 치환입니다. 따라서 변수처럼 컴파일되는 것이 아니라, 원본 코드를 해당 값으로 대체하는 역할을 합니다. [C Preprocessor and Macros] - **Q: 매크로를 사용할 때 괄호 처리가 중요한 이유는 무엇인가요?** — A: 매크로는 실제 함수 호출이 아니라 텍스트 치환이기 때문에, 인자나 본문에 연산자가 포함될 경우