'Programming/C/C++'에 해당되는 글 1건
- 2013.05.11 #if, #ifdef에 대한 이해
2013. 5. 11. 10:44
C언어를 공부하다보면
#if, #ifdef 같은 눈에 익지 않은 명령어가 나올 때가 있다. 이들은 무엇이냐.
이렇게 앞에 '#'이 붙은 친구들을 컴파일러 지시자라 하는데, 간단한 예시로 한번에 이해 하면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <p>#include <stdio.h> #define TRUE 1 #define FALSE 0 int main(){ #if TRUE printf ( "a" ); #endif #if FALSE printf ( "b" ); #endif } </stdio.h></p> |
이 지시자는 #if뒤에 상수가 참이면 #endif와의 사이에 있는 코드를 실행합니다.
즉, 위의 결과는 a만 나오겠지요.
다음은 #ifdef에 대해 알아봅시다.
벌써 예상하셨다시피 뒤에 def는 define에 약자인듯 하네요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include<stdio.h> #define what 1 //#define wow 1 int main(){ #ifdef what printf ( "what" ); #endif #ifdef wow printf ( "wow" ); #endif } </stdio.h> |
#ifdef라는 친구는 '해당 상수가 선언 되있다면'으로 해석하시면 될 듯 하네요.
위에 코드에서 what은 선언 되있고, wow는 선언이 안되있으니 결과는 'what'이겠지요.