可能重复:
Is there a portable way to print a message from the C preprocessor?
在大型代码库中导航时,有时很难猜出定义的内容和不定义的内容。因此,我想在编译时打印一些东西。例如:
#ifdef SOME_DEFINE
// I want a preprocessor to print something here so that
// I can know whether SOME_DEFINE is defined or not
#endif
这可能与 C 有关吗?
我在某个地方看到了一个叫#error
的东西。也许这是我唯一的选择,不是吗?
答案 0 :(得分:1)
对于MS Visual C ++:
#define __PRINT(str) __pragma(message(str))
答案 1 :(得分:1)
关于#error
指令的好处是它即使不受支持也能正常工作!
如果支持,编译器会告诉您"error: #error"
,如果不支持,编译器会告诉您"invalid preprocessing directive"
。无论哪种方式,它都是致命错误,编译停止,编译器会告诉您哪个是违规行。