반응형

#ifdef 는 정의되있는지를 테스트 하므로, 한번에 여러개를

사용할 수는 없다. 형식이 #ifdef name 처럼,

하나의 토큰이 되어야한다.

여러개가 정의되있는지 테스트 하기위해서는
#if defined(MACRO1) || defined(MACRO2)처럼 사용.

단, #if는 ||로 중첩해서 사용할 수 있다.
형식이, #if expression이므로, C표현이 올수 있다.

#if MACRO1 || MACRO2 처럼 사용해도 된다.

 #if !defined() 의 의미는 #ifndef 와 같다. (if not define)

()안의 내용이 정의되어 있지 않으면 그 아래부분 (#endif까지)을 유효한 소스코드로 인식하고 컴파일 시 적용하라는 의미다.

 그런데 그 괄호안의 부분을 찾을 수가 없다는 것은

EXCLUDE_PGX_SUPPORT 가 아무데도 define되지 않았음을 의미

 정의되어 있지 않으므로 해당 구문 이후의 소스코드는

유효한 코드가 된다.

 #if !defined(...)

 안의 내용은 유효코드

 #endif

 반대로, #ifdef (...)라면

해당 키워드가 정의되어 있지 않으므로

#endif  까지의 코드내용은 전부 무의미해진다.


'language > C' 카테고리의 다른 글

BCD(binary Coded Decimal)  (0) 2009.06.23
gcc설치하여 vim으로 편집하기  (0) 2009.05.19
continue 와 break 차이  (0) 2009.05.13
const와 static  (0) 2009.05.05
#define와 const 차이점  (1) 2009.05.05

+ Recent posts