Programming/C Win32 MFC2015. 4. 13. 16:42

찾아는 봐도 이런것 관련 내용은 아직인데..

현상으로만 봐서는..

#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
Posted by 구차니