【发布时间】:2023-03-03 15:10:01
【问题描述】:
如何在预处理期间打印包含宏的消息?
例如:
#define MACRO_1 1
#pragma message ("Date:" __DATE__) // OK
#pragma message ("MACRO_1 = " MACRO_1) // error: pragma message requires parenthesized string
【问题讨论】:
-
我猜 MACRO_1 的结果只需要一个字符串 ("1") 就可以了。您可以使用
#pragma message ("MACRO_1 = " #MACRO_1)在代码中对其进行字符串化。见gcc.gnu.org/onlinedocs/cpp/Stringification.html -
@IdeaHat - 我尝试使用“1”字符串来使用单个 #,但我不断收到相同的错误...
标签: c printing macros c-preprocessor pragma