我有一个C程序,可以使用#define
来启用或禁用很多优化。当我运行我的程序时,我想知道在编译时定义了哪些宏。打印名称和宏的值
所以我想写一个宏函数来打印一个宏的实际值。事情是这样的:
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);\
}
但是我不知道如何使它工作,我怀疑这是不可能的,没有任何人对如何做到这一点的想法?
(注意,没有定义的宏,即使这需要编译!)
接受m4的回答。当您添加另一个预处理步骤时,这变得很容易。我做了SHOW_DEFINE(X,Y,Z ...),这更好。然而,它使sens,因为我需要m4的其他东西。 – Ben 2009-07-22 12:32:46