MuTa

조건 컴파일 #if #endif 본문

MFC-C++

조건 컴파일 #if #endif

MuTa 2011. 12. 3. 21:08
#if 0
blahblah();
#endif

위 코드에서 blahblah는 컴파일 전단계에서 사라집니다.

#if 1
blahblha2();
#endif

위 코드에서 blahblah2는 컴파일되겠죠

#if A

는 A가 true일때 아래 코드를 컴파일해라. 라는 전처리 명령입니다.

효과는 #endif 를 만날때 까지 적용되고요(#endif가 없으면 컴파일 에러가 나죠.)

if(A){} 와 다른 점은 if(A)는 컴파일이 되고 런타임 단계에서 실행여부가 결정되지만

#if A
#endif
는 컴파일 단계에서 실행여부(컴파일이 안되면 실행도 안되죠)가 결정됩니다.

#ifndef A
blahblha3();
#endif
위 코드에서 blahblah3는 A가 define돼 있지 않아야 컴파일 됩니다.
위코드가 나오기 전의 소스코드에(#include된 코드들 포함)
#define A
가 나오면 컴파일 되겠죠
A가 define되었더라도
#undef A
가 나오면 다시 define되지 않은 상태가 되어 blahblah3()는 컴파일되지 않습니다.
0 Comments
댓글쓰기 폼