预处理程序指令返回值

时间:2012-10-19 09:27:16

标签: linux c-preprocessor preprocessor-directive

我希望收到变量check的输出值  用#define check something命名的 是否可以使用某些预处理程序指令接收此值? 比如这样的事情:
#error check

3 个答案:

答案 0 :(得分:2)

#error指令未进行宏扩展。也不是#warning

这意味着您无法使用#error#warning

输出预处理程序表达式

根据预处理程序表达式的值,最接近给出消息的方法如下:

#if (MACRO < 12)
#error MACRO was less than 12
#elif (MACRO >15 && MACRO < 19)
#error Another message about MACRO
#endif

有关详细信息,请参阅文档中的“条件”:

答案 1 :(得分:1)

没有

变量在编译时没有值,仅在运行时。预处理器不能在运行时运行,只能在编译时运行。

此外,预处理器不解析语言,它只处理文本。它不知道你的变量声明。

答案 2 :(得分:0)

如果你必须得到它的价值,试着预处理有潜在错误的文件。

 for gcc: gcc -E

然后你可以手动检查扩展到的内容。