gpt4 book ai didi

c - 如何在不修改头文件的情况下取消应用程序代码中的宏定义?

转载 作者:行者123 更新时间:2023-11-30 21:07:00 26 4
gpt4 key购买 nike

我有两件事:库文件及其 header 。我无法访问源文件。我唯一能做的就是为我的应用程序使用编译的库。为此,我在 main.c 文件中指定了头文件。假设 header (application.h)中的代码指定了一个宏 TEST,如下所示:

application.h

#define TEST

application.c 文件中,我包含 application.h header :

#ifdef TEST
{
do this
}
#else
{
do something else
}

现在,在我的 main.c 文件中,我包含了 header application.h我不打算使用宏 TEST,这意味着我想取消定义它。显然我可以在 application.h 文件中取消定义。但我不想那样做。有没有办法取消 main.c 中的宏定义像这样的事情:

ma​​in.c

#include"application.h"
#undef TEST

我尝试了这个,当我运行程序时它不起作用。有没有办法在不修改 application.h 文件的情况下实现此目的?

最佳答案

据我了解您的问题,您希望修改 main.c 而不触及 application.capplication.h

如果 application.c 包含 application.h,那么据我所知,您将无法取消任何内容。 application.cmain.c 是不同的编译单元,定义是由预处理器在编译单元级别计算的。

如果 application.h 中有无条件 define,那么您将不得不接受它。

关于c - 如何在不修改头文件的情况下取消应用程序代码中的宏定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096170/

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