TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS3.3 结构体成员对齐

请问一下群里的朋友为什么在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 不被识别的错误 这个问题 兄是怎么解决的?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » CCS3.3 结构体成员对齐
分享到: 更多 (0)