多通C预处理器

ELL*_*BLE 3 project-management c-preprocessor

C预处理器多次应用于同一代码库(具体来说,按顺序执行两次?)是否可以远程理解?

例如,具有如下声明:

##define DECLARE(FILE) # define DECLARATIONS \
                       #   include FILE \
                       # undef DECLARATIONS
Run Code Online (Sandbox Code Playgroud)

你以前见过这样的成语吗?如果是这样,代码库是什么?你能链接吗?编译一个像这样的项目的项目会遵循什么样的模式?可以按原样使CPP执行此操作,还是需要编写元预处理器以在处理双哈希声明时"隐藏"单哈希声明,依此类推?

Jer*_*ock 5

我想当你需要多次CPP传递时,你可能想要考虑m4或其他一些复杂的宏系统/代码生成器.我认为很难做到你想要的,因为无论如何你都要改变你的构建过程,看看其他的模板或宏系统.