gpt4 book ai didi

c++ - CPP - 自动删除#ifdef 和#ifndef

转载 作者:搜寻专家 更新时间:2023-10-31 02:11:22 24 4
gpt4 key购买 nike

我正在使用 Geany IDE,我正试图摆脱代码中的所有 #ifdef 和 #ifndef 。出现次数超过1000次,嵌套,无法手动完成。

这是一个例子:

#define EXPLAIN

#ifndef EXPLAIN
...
#endif
...
#ifdef EXPLAIN
...
#else
...
#endif

某处条件是#ifdef,某处是#ifndef。您明白了……有没有一种简单的方法可以通过所有相应的代码摆脱它们?

如果需要,我会下载并安装任何其他软件。

最佳答案

一个好的解决方案是使用仅运行预处理器的 -E 标志运行 gcc。以下命令:

gcc -E -D EXPLAIN file.cpp -o file.i

预处理 file.cpp 并输出 file.i,它是用定义的 EXPLAIN 宏预处理的 file.cpp。

如果您想生成一个通常更具可读性且更接近输入文件预期外观的输出文件,一些有用的标志:

  • -D NAME 定义定义为 1 的宏 NAME
  • -fdirectives-only 处理指令但不处理宏。
  • -C 保留注释。
  • -P 禁止行标记。

即使使用这些标志,#include 也会被您包含的预处理文件替换。您可以通过简单地删除 #include,预处理输入文件,然后在输出文件中添加 #include 来解决此问题。

来源:Using the GNU Compiler Collection (GCC): Preprocessor Options .

关于c++ - CPP - 自动删除#ifdef 和#ifndef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43706516/

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