C Header 文件:没有标准库的宏扩展

C Header File: Macro Expansion without Std Library

我想扩展我在 c header 文件中的宏,但到目前为止我还得到了一个标准库。我的 ~200 行文件扩展到 60k 行文件(~30k 行是白色的 space),其中我只想使用扩展的原始 ~200 行。

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

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

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

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

最坏的情况是我可以从下往上工作并将文件剪辑到 #line <num> <path> 与我的文件路径不匹配,但这看起来很不雅。

在 Windows 上使用 MSVC。

以上评论归功于@Lundin。

我错误地认为注释掉编译所需的包含会阻碍预处理器。它根本不在乎。剥离麻烦的#includes很容易得到macro-expandedheaders。它仍然会有 #line <number> <path> 和空行,但是这些很容易去掉。