首页 > 解决方案 > C 头文件:没有标准库的宏扩展

问题描述

我正在寻找扩展我在 c 头文件中的宏,但到目前为止我也得到了一个标准库。我的 ~200 行文件扩展为 60k 行文件(其中 ~30k 行是空白),其中我只想使用扩展后的原始 ~200 行。

是否有允许我不扩展标准库的标志?

目前使用的命令:cl myHeader.h /E > __test.h

扩展到我处理的标头中的行参考示例(省略扩展代码): #line 688 "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Professional\\VC\\Tools\\MSVC\\14.16.27023\\include\\string"

我的最终用例是解析扩展的标头,我相信(但不能确定)大多数宏都是#define FOO 42用于填充数组大小的简单类型扩展。如果我无法cl停止插入标准库,我还有其他选择吗?

在最坏的情况下,我可以从底部向上工作并将文件剪辑到#line <num> <path>与我的文件路径不匹配的位置,但这似乎非常不雅。

在 Windows 上使用 MSVC。

标签: cc-preprocessor

解决方案


在上面的评论中感谢@Lundin。

我错误地认为注释掉编译所需的包含会阻碍预处理器。它一点也不在乎。剥离麻烦#includes是获得宏扩展标头的一种非常简单的方法。它仍然会#line <number> <path>有空行和空行,但是去掉这些是微不足道的。


推荐阅读