我希望收到变量check
的输出值
用#define check something
命名的
是否可以使用某些预处理程序指令接收此值?
比如这样的事情:
#error check
答案 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
然后你可以手动检查扩展到的内容。