【发布时间】:2011-09-16 18:56:08
【问题描述】:
在编译它之前,我通过 C 预处理器运行了我的源文件两次,我想将 #include 指令延迟到第二遍。
直觉上,我试过这个,但它不起作用:
##include <zlib.h>
我只需要一个构造,它在预处理后会给出#include mylib。
【问题讨论】:
-
我正在努力想一个想要这样做的原因。关心开导?
-
@cHao:我用的是flex,我想对文件进行预处理,使我能够编写正则表达式,但是文件经过处理后需要再次运行预处理器弯曲。
-
您能否以预处理器无法识别的格式制作您的包含文件,并让 flex 在执行操作时将它们更改为“正确”格式(假设 flex 更改文件)?由于缺少修改文件或执行条件包含,您可能运气不佳 - 预处理器两次都将使用相同的东西,所以它会在两次运行时做同样的事情。跨度>
-
@cHao:你不明白,我试图预处理 flex 源本身,而不是基于 flex 的解析器的输入。我只需要一个构造,在预处理时会给出“#include mylib”。
标签: include preprocessor