반응형
#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 |