【发布时间】:2011-04-21 15:44:44
【问题描述】:
我正在使用不处理预处理器指令的原始 C 解析器。
我可以毫无问题地使用 -E 开关预处理大部分标题。
最近我发现存在 attribute 和 align 的情况。
我试图通过这个调整来摆脱它们:
gcc -D "aligned(ARGS)" \
-D "__align__(ARGS)" \
-D "__attribute__(ARGS)" \
-E /usr/local/include/fancyheader.h
更新:
但没有成功,例如:
struct __attribute__((aligned(16))) long4
{
long int x, y, z, w;
};
上面的语句被转换成,那个“1”悬而未决
struct 1 long4
{
long int x, y, z, w;
};
谁知道摆脱 __align__ 和 __attribute__ 扩展的正确方法?
【问题讨论】:
-
好的,这个原始的 C 解析器是什么,你想用它做什么?当你试图用 -D 指令摆脱这些东西时发生了什么?只是“没有成功”告诉我们什么。
-
如果指定
gcc -x c -D ....会发生什么?
标签: c gcc optimization c-preprocessor