如何仅对一个定义值应用C预处理?

时间:2019-06-26 20:37:59

标签: c-preprocessor text-processing

我有一个带有一堆预处理程序指令的C(头)文件-#define#ifdef#if,甚至还有#pragma

现在,我要对该文件进行部分预处理,以便仅应用一种预处理器指令:#if,其条件涉及特定变量(称为MY_VAR);当然还有相应的#else#endif。您可以假定如果在条件中使用MY_VAR,则在该条件中不使用其他预处理程序定义;并且条件的格式为MY_VAR [op] [value],其中OP是比较操作,而VALUE是文字数字。

换句话说-我想保留文件中与MY_VAR的某个值相关的部分-包括其中的所有预处理器定义,保持不变,并且不扩展。

我想可以通过编写一个涉及的awk / perl脚本并跟踪预处理程序指令的“嵌套”来实现。但是-有没有更简单或更直接的东西?

注意:如果有帮助,您甚至可以使用这些#if伪指令对行上的空格进行假设,或者用文件的特殊注释或文件作者的其他类似“辅助”标记它们。

0 个答案:

没有答案