프로그래밍2008. 4. 25. 19:06
반응형
조건부 컴파일

조건부 컴파일(conditional compile)이란 말 그대로 어떤 조건이 만족할 때에만 컴파일을 적용하도록 하는 것이다. 조건부 컴파일을 하는 방법은 일반적인 조건문을 사용하는 방법과 비슷하다. 단, 조건부 컴파일은 전처리기에 의해 수행된다.


조건부 컴파일을 위한 지시어 #ifdef, #else, #endif

#ifdef 지시어는 어떤 매크로가 이미 정의 되어 있는지 확인하기 위해 사용된다.


#ifdef CHECK

          fprintf(stderr, "x: %d", x);

          fprintf(stderr, "y: %d", y);

          fprintf(stderr, "z: %d", z);

#endif          //CHECK가 정의되 경우만 사이의 내용이 컴파일 된다.


위에서 #ifdef과 #endif 지시어로 둘러 싸인 부분은 CHECK라는 이름의 매크로가 정의되어 있는 경우만 컴파일된다. 다시 말하면 전처리기에서 CHECK가 정의되어 있을 때만 코드를 남겨 둔다는 것이다. #endef는 #ifdef과 같은 조건 관련 지시어를 끝내기위해 사용한다. 위와 같이 해 놓으면 디버깅이 필요한 경우에만 다음과 같이 미리 CHECK 매르로를 정의하면 된다.


#define CHECK


위와 같이 CHECK의 값 자체는 의미가 없으므로 단지 정의만 되어 있으면 된다. CHECK를 정의하지 않으면 코드는 불필요한 부분 없이 깔끔하게 컴파일될 것이다.


#else 지시어는 조건문의 else와 비슷한 역할을 한다.


#ifdef <identifier>

          ... ...          //<identifier> 가 정의되어 있는 경우 컴파일된다.

#else

          ... ...          //<identifier> 가 정의되어 있지 않는 경우 컴파일된다.

#endif

반응형

'프로그래밍' 카테고리의 다른 글

C언어에서 실수형의 출력 내용이 정확하지 않은 이유  (0) 2008.04.25
전처리기  (0) 2008.04.25
EOF  (0) 2008.04.25
제어문자  (0) 2008.04.25
strtok함수에 대해  (0) 2008.04.25
Posted by pmj0403