我想重新定义一个宏,但不修改头文件或源文件。例如:#define macro_1 Present --是头文件中实际定义的内容对于一组执行,我需要这个宏是一样的,但对于另一组执行,我需要宏被重新定义为'缺席'值这应该在不改变头文件的情况下完成。我使用ghs编译器。我试过undef选项,但它没有有效的工作
xbp102n01#
对于GCC或Clang,在命令行上定义宏的选项是-D。你需要在头文件中使用条件编译:
-D
#ifndef macro_1 # define macro_1 "Present" #endif
否则,将出现宏重定义错误。
rxztt3cl2#
如果代码不包含#ifndef macro_1或类似的内容,那么您所要求的内容在大多数编译器中是不可能实现的。如果是这样的话,那就看看答案吧。某个程序员老兄。
#ifndef macro_1
2条答案
按热度按时间xbp102n01#
对于GCC或Clang,在命令行上定义宏的选项是
-D
。你需要在头文件中使用条件编译:
否则,将出现宏重定义错误。
rxztt3cl2#
如果代码不包含
#ifndef macro_1
或类似的内容,那么您所要求的内容在大多数编译器中是不可能实现的。如果是这样的话,那就看看答案吧。某个程序员老兄。