如何通过gcc参数去除预处理器输出中的#开头标记指令
解答
可以通过添加gcc参数实现该需求,gcc的预处理选项专门提供了对应原生功能:
- 你只需要在原有预处理命令中加入
-P参数即可,该参数的作用就是抑制所有#开头的行标记(linemarker)输出,仅保留纯预处理后的有效内容。 - 修改后的命令如下:
gcc -E -P test.c -o test.pp
运行上述命令后生成的test.pp文件中就只会保留foo boo bar内容,不会出现你不需要的标记类指令。
如果不想修改gcc调用参数,也可以通过管道过滤的方式实现同等效果,比如执行命令gcc -E test.c | grep -v '^#' > test.pp,但直接添加-P参数的方案更简洁,也不会引入额外的过滤逻辑开销。
内容的提问来源于stack exchange,提问作者João Paulo
相关产品推荐
相关产品推荐

