小编Mad*_*dio的帖子

有没有办法让C预处理器解析#error语句中的宏?

正如标题所说.我想在#error语句的文本中使用预处理器宏:

#define SOME_MACRO 1

#if SOME_MACRO != 0
    #error "SOME_MACRO was not 0; it was [value of SOME_MACRO]"
#endif
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望预处理器解析[value of SOME_MACRO]为实际值SOME_MACRO,在这种情况下为1.这应该在预处理器,编译器或任何进程之前发生#error打印错误输出
有没有办法做到这一点或者这不是可能?

我不想知道是否有ISO C++标准方法可以做到这一点,因为afaik预处理器指令#error没有在任何ISO C++标准中声明.但是,我知道GCC和Visual C++的支持#error.但我的问题不是那些编译器特有的,我只是好奇,如果有任何C/C++编译器/预处理器可以做到这一点.

我试图搜索那个话题,但没有任何运气.

c++ c-preprocessor

11
推荐指数
2
解决办法
3984
查看次数

标签 统计

c++ ×1

c-preprocessor ×1