到目前为止,我到目前为止:

#define ADEFINE "23"
#pragma message ("ADEFINE" ADEFINE)

哪个可行,但是如果ADEFINE不是字符串怎么办?
#define ADEFINE 23
#pragma message ("ADEFINE" ADEFINE)

原因:



理想情况下,我希望能够处理任何值,包括未定义的值。

最佳答案

要显示不是字符串的宏,请输入stringify the macro:

#define STRINGIFY(s) XSTRINGIFY(s)
#define XSTRINGIFY(s) #s

#define ADEFINE 23
#pragma message ("ADEFINE=" STRINGIFY(ADEFINE))

如果您有/想要boost,则可以使用boost stringize为您完成:
#include <boost/preprocessor/stringize.hpp>
#define ADEFINE 23
#pragma message ("ADEFINE=" BOOST_PP_STRINGIZE(ADEFINE))

关于c - 我如何在gcc中显示编译时#define的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9694248/

10-09 15:49