请问一下群里的朋友为什么在CCS3.3编译
typedef __packed struct
{
char a;
int b;
}teststruct;
这个结构体时提示
编译出错: error: expected a type specifier
error: expected a ";"
这个错误。是CCS3.3编译器本身不支持__packed这种结构体成员的对齐方式吗?如果不支持,那么怎么样来改变其结构体的对齐方式?请朋友们不吝赐教。
另外 用#pragma pack()会提示#pragma 不被识别的错误。这是怎么回事?
Chris Meng:
你好,
是C6000编译器么?
如果编译器较旧,应该是不支持的。请参考http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/p/11396/44313。
如果是较新编译器,开启-gcc选项,应是可以支持的。请参考:http://e2e.ti.com/support/development_tools/compiler/f/343/t/89148。
Louis:
回复 Chris Meng:
据我所知,CCS3.3的DSP编译器本身不支持__packed这种字节的结构体成员的对齐方式。
bin chen2:
回复 Chris Meng:
你好:
是的,我用的是DM6446芯片,开发环境是CCS3.3。在ARM端编译的时候需要是结构体成员按字节对齐,想取消默认的对齐方式,就试了试__packed和#pragma packed(1)这两种方式,结果编译时都没有通过。
bin chen2:
回复 Louis:
你好:
如果要在CCS3.3上面来做,怎么样来改变这种字节的结构体成员的对齐方式?
谢谢!
wei lu3:
回复 Chris Meng:
您好,我想请教下,我用的是ccs 5.0编译器,现在想用一字节对齐方式,也就是#pragma pack(1)格式,但是编译出来告警,现在能有解决办法么?开启-gcc选项,在哪里开启,具体怎么操作?谢谢
wei lu3:
兄好,用#pragma pack()会提示#pragma 不被识别的错误 这个问题 兄是怎么解决的?谢谢
TI中文支持网

