我正在使用一个简单的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__扩展的正确方法?
gcc -x c -D ....
会发生什么? - Andy Finkenstadt