我有两件事: 库文件和标题。 我无法访问源文件。我唯一能做的就是将编译好的库用于我的应用程序。为此,我在main.c文件中指定头文件。 让我们说header(application.h)中的代码指定了一个宏TEST,如下所示:
application.h
#define TEST
在 application.c 文件中,我包含 application.h 标题我有:
#ifdef TEST
{
do this
}
#else
{
do something else
}
现在在我的main.c文件中包含头文件application.h 我不打算使用宏TEST,这意味着我想取消定义它。 显然我可以在application.h文件中取消定义。但我不想这样做。有没有办法在main.c中取消定义宏 像这样:
的main.c
#include"application.h"
#undef TEST
我试过这个,当我运行程序时它不起作用。 有没有办法在不修改application.h文件的情况下实现这个目的?
答案 0 :(得分:0)
据我了解您的问题,您希望在不触及main.c
或application.c
的情况下修改application.h
。
如果application.c
包含application.h
,那么据我所知,你将无法取消任何东西。 application.c
和main.c
是不同的编译单元,定义由预处理器在编译单元级别计算。
如果define
中存在无条件application.h
,那么您将不得不忍受它。