728x90
반응형
전처리문
: 실질적인 컴파일 이전에 미리 처리되는 문장을 말하며, 선행 처리기라고도 한다. 따라서 컴파일러는 사용자가 작성한 코드를 컴파일 하기 전에 전처리문에서 정의해놓은 작업을 먼저 수행하게 된다.
- 파일 처리를 위한 전처리문 : #include
- 형태 처리를 위한 전처리문 : #define, #undef
- 조건 처리를 위한 전처리문 : #if, #ifdef, #else, #elif, #endif
- 에러 처리를 위한 전처리문 : #error
- 디버깅을 위한 전처리문 : #line
- 컴파일 옵션 처리를 위한 전처리문 : #pragma
조건 처리를 위한 전처리문은 어떤 조건에 대한 검사를 하고, 그 결과를 참(0이 아닌 값) 또는 거짓(0)으로 돌ㄹ준다.
#if : ~이 참 이라면
#ifdef : ~이 정의되어 있다면
#else : #if나 #ifdef에 대응
#elif : else + if
#endif : #if, #ifdef, #infdef 이 끝남
1. #include
: 헤더 파일과 같은 외부 파일을 읽어서 포함시키고자 할 때 사용
#include <stdio.h> #include "sample.h"
2. #define
: 상수 값을 지정하기 위한 예약어인 매크로, 구문의 상수로 치환함
#define SUM(x) ((x) = (x)+(x))
3. #undef
: #define으로 이미 정의된 매크로를 무효화
#define SUM(x) ((x) = (x)+(x)) #undef SUM(x)
4. #if ~ #endif
: if 랑 아주 비슷한 구문으로, 어떠한 구문을 컴파일 할지 안할지 지정 가능
#define test 1 #if test A source code #endif
아래 소스는 거짓이 되기 때문에 source code 부분은 컴파일 되지 않는다.
#if 0 source code ... #endif
5. #ifdef ~ #endif
: 컴파일 할 때 아래와 같이 쓴다면 상수 2로 치환되어 전처리기가 컴파일러에게 넘겨준다.
MYDEF를 정의하고(값은 아직 가지지 않은 상태), YOURDEF가 정의되어있으면 BASE 10, MYDEF가 정의되어있으면 2
#define MYDEF #ifdef YOURDEF #define BASE 10 #elif MYDEF #define BASE 2 #endif
참고자료 1 : http://sarghis.com/blog/802/
728x90
반응형
'Programming > C | C++' 카테고리의 다른 글
[C] printf 출력형식 %d %i %u %X %x %o %p %s %c %C %f %e %E %g %G (2) | 2018.08.29 |
---|---|
[C] 포인터 (0) | 2018.08.21 |
[C] 파일 목록 가져오기 (2) | 2018.08.16 |
[C++] STL 정리 (0) | 2018.08.05 |
[C] 비주얼스튜디오2013 scanf 오류 해결법 (0) | 2015.11.02 |