gpt4 book ai didi

c++ - 限定 C++ 宏的范围?

转载 作者:太空狗 更新时间:2023-10-29 20:51:34 27 4
gpt4 key购买 nike

我正在处理一个大型 C++ 项目。我有一堆在项目的子集中使用的宏,但我不想将它们导出到任何地方,以避免污染不相关的代码。

现在,我的许多文件看起来像

#include <MyMacros.h> // defines MACRO_1, MACRO_2, ... MACRO_N

// bla
// bla

#undef MACRO_1
#undef MACRO_2
// ...
#undef MACRO_N

当然,这要打破我引入MACRO_N+1的那一天。

是否有更好的方法以某种方式一次性取消定义所有这些宏?

最佳答案

您可以创建一个单独的包含文件来取消定义有问题的宏,并将其包含在您的源文件中。

例如,在undefMacros.h中:

#undef MACRO_1
#undef MACRO_2
// ...
#undef MACRO_N

然后在你的源文件中:

#include <MyMacros.h> // defines MACRO_1, MACRO_2, ... MACRO_N

// bla
// bla

#include <undefMacros.h>

然后你只需要在一个地方维护#undef语句,除了宏最初定义的地方。

关于c++ - 限定 C++ 宏的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409457/

27 4 0
文章推荐: c# - 对象何时符合垃圾回收条件?
文章推荐: python - 为什么 basicConfig 中的 python 日志记录级别没有效果?
文章推荐: jquery - Selenium wait.until 检查 ajax 请求完成是抛出错误
文章推荐: c# - 将 IList 转换为 IList 在运行时失败