from Project/└ Linetracer 2013. 1. 10. 17:39

#ifdef, #endif, #undef

#ifdef _DEBUG

_DEBUG 코드

#else

else 코드

;_DEBUG 코드가 Defnie 되어있으면 else.

Define 되어있지 않으면 "_DEBUG 코드" 가 실행된다.

#endif

일반 if문과 달리 _DEBUG가 Define되어 있지 않다면

코드부분은 컴파일조차 되지 않고, 

if문과 마찬가지로 #else에 해당하는 코드가 실행된다.


#if 를 쓰면 여러가지 조건을 체크해서 수행하게 할 수 있다.


Thinking...

if~else~문 처럼 사용되는데

다만 차이점은, 변수가 아니라 어떠한 값이라는거?

한번 설정하면 그대로 유지하는...


이건 여러소스파일을 사용할때, 다른 헤더파일에서 중복으로 선언되지 않을때 사용하는거 같다.

main.h 에서 #define LED 0xff 라고 선언하고

board.h에서 #ifdef LED 로 사용하면

만약 LED가 #define 되지 않았을 경우에만 #ifdef가 실행되는거 같다. 


참고링크


,