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>
和空行,但是这些很容易去掉。
我想扩展我在 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>
和空行,但是这些很容易去掉。