【发布时间】:2010-11-12 23:22:13
【问题描述】:
我有一个 C 程序,它有很多优化可以用#defines 启用或禁用。当我运行我的程序时,我想知道在编译时定义了哪些宏。
所以我正在尝试编写一个宏函数来打印宏的实际值。像这样的:
SHOW_DEFINE(X){\
if( IS_DEFINED(X) )\
printf("%s is defined and as the value %d\n", #X, (int)X);\
else\
printf("%s is not defined\n", #X);\
}
但是我不知道如何使它工作并且我怀疑这是不可能的,有没有人知道如何做到这一点?
(请注意,即使未定义宏也必须编译!)
【问题讨论】:
-
相关的,如果你在这里寻找别的东西:如果你只是想找出标准头文件定义的宏的东西,而不是让你的程序打印它们,见Listing C Constants/Macros类似的东西
gcc -dM和 how to find the source of some macros
标签: c c-preprocessor