답변:
이 warning
지시문은 아마도 여러분이 얻을 수있는 가장 가까운 것일 수 있지만 완전히 플랫폼 독립적 인 것은 아닙니다.
#warning "C Preprocessor got here!"
AFAIK는 pragma
지시문 을 사용해야하는 MSVC를 제외한 대부분의 컴파일러에서 작동 합니다.
#pragma message ( "C Preprocessor got here!" )
#define WARNING(msg) _Pragma("message " #msg)
당신은 할 수 없습니다. 전처리 기는 C 코드보다 먼저 처리됩니다. 전 처리기 코드가 실행되지 않기 때문에 화면에 인쇄 할 전 처리기 지시문이 없습니다. 실행 코드로 컴파일 될 C 코드를 생성하는 데 사용됩니다.
문제가있는 경우 :
#ifdef ...
printf("Hello");
#endif
이것은 전처리 기가가는 한 할 수있는 전부이기 때문입니다.
#ifdef _LINUX #define #preprocmsg "#warning" else #define #preprocmsg "#pragma message"
... 나는 그것을 시도해야하지만 본능적으로 대답은 '아니오'라고 말합니다.