gpt4 book ai didi

c - 如何在编译时在 gcc 中显示 #define 的值

转载 作者:太空狗 更新时间:2023-10-29 16:25:15 24 4
gpt4 key购买 nike

到目前为止,我已经做到了:

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

哪个可行,但如果 ADEFINE 不是字符串怎么办?

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

原因:

warning: malformed ‘#pragma message’, ignored

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

最佳答案

要显示不是字符串的宏,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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com