gpt4 book ai didi

c - 预处理 C99 有向图

转载 作者:行者123 更新时间:2023-11-30 15:18:09 25 4
gpt4 key购买 nike

有没有办法“预处理”C99 样式的二合字母以获得 C 文件(或 .i 预处理源),使得生成的文件不包含任何二合字母?

例如,给出以下源代码:

%:define N 5

int main() <%
int a<:N:> = <%2,1,0%>;
char *s = "a<:b";
return a<:4:>;
%>

使用 GCC 的预处理器选项(-E,再加上 -dD)足以消除 %: 二合字母(在本例中,它被评估并重新打印为 #define),但其他的则不然。

Clang 的行为方式相同,因此没有太大帮助。

据我了解,简单的正则表达式替换不起作用,因为它们最终会替换字符串中的出现位置。

最佳答案

据我所知,没有标准工具可以进行这种转换。特别是,预处理器不会替代二合字母,因为(与三合字母不同)二合字母只是普通标记,恰好与其他普通标记具有相同的含义。

使用 flex 编写这样的处理器相对简单,从现有的 C 语言 Flex 定义开始。

关于c - 预处理 C99 有向图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com