ifdef, if defined, ifndef, if !defined
Programming/C/C++ / 2011. 3. 4. 12:22
#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 까지의 코드내용은 전부 무의미해진다.
출처 : http://blog.naver.com/ghostcbr954/110003736409
반응형
'Programming > C/C++' 카테고리의 다른 글
[게임코드]손쉽게 카메라 흔들기 (0) | 2011.03.04 |
---|---|
임의의 표면에 데칼 적용하기(소스포함) (2) | 2011.03.04 |
enum, 보다 나은 enum (0) | 2011.01.13 |
IME 소스 (한글) (2) | 2010.11.26 |
[C++] 형변환 (Typecasting) - const_cast, reinterpret_cast, static_cast, dynamic_cast (0) | 2010.09.28 |