찾아는 봐도 이런것 관련 내용은 아직인데..
현상으로만 봐서는..
#ifdef 와 #if defined () 가 동일한 의미이고
#ifdef () 는 다른 의미로 사용이 가능한게 아닐까 생각된다.
1 #define TEST 2 #ifdef TEST 3 #warning TEST test 4 #endif 5 6 #ifdef (TEST) 7 #warning (TEST) test 8 #endif 9 10 void main() 11 { 12 return 0; 13 } |
$ gcc test.c test.c:3:2: warning: #warning TEST test [-Wcpp] test.c:6:8: error: macro names must be identifiers test.c: In function ‘main’: test.c:12:2: warning: ‘return’ with a value, in function returning void [enabled by default] |
[링크 : https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html]
[링크 : https://gcc.gnu.org/onlinedocs/cpp/Ifdef.html]
+
에러를 보니.. identifier.
간단하게 식별자로 ()가 들어갈 수 없는데 ( 부터 식별자로 인식을 해버리는 것으로 생각된다.
즉.. #ifdef {A-Za-z0-9_} 라고 정의가 되려나?
#define과는 다르게 #ifdef에서는 ()를 쓸수가 없다! 가 결론일듯
'Programming > C Win32 MFC' 카테고리의 다른 글
inline 함수.. (0) | 2015.05.12 |
---|---|
혼돈의 카오스 - 교차참조 헤더 (0) | 2015.05.11 |
winUSB / win32 physical drive (0) | 2014.12.23 |
printf POSIX 확장 %1$d (0) | 2014.12.09 |
include guard (0) | 2014.11.05 |