递归删除预处理器宏

Recursively remove preprocessor macros

我有一个我正在处理的程序的源代码树,它是用混合 C/C++ 代码编写的。出于调试目的,我希望能够 运行 像 unifdef 这样的命令行工具在整个树上(递归地)从所有源文件中删除一组特定的 #ifdef/#endif 宏。

我想知道是否有任何特定的方法可以有效地完成这项工作。如有任何帮助,我们将不胜感激。

我已经使用以下命令解决了这个问题:

find . -name '*.c' -o -name '*.h' -o -name '*.cpp' -o -name '*.hpp' -exec unifdef <macro definitions> -o '{} {} ;'