定义了如下的Union:
union UNI_Frame_Test
{
// #pragma DATA_ALIGN(ArrayU16, 2);
Uint8 ArrayU8[44];
struct {
Uint32 U32_1;
Uint32 U32_2;
double f64_1; int8 i8_1;
double f64_2; int8 i8_2;
double f64_3; float f32_1; Uint32 U32_3;
int8 i8_3;
int8 i8_4;
}strTestUnionData;
};
union UNI_Frame_Test g_testUnionData;
目的:将收到的串行数据copy到union的数组中,这样就可直接从struct中取数据。
现在试了一下,f64_2读出的数据是乱的。
问题:C6748是否支持单字节对齐方式?查了一下,好像只支持4字节整数倍?谢谢!
user1317437:
回复 Denny%20Yang99373:
将结构体中的变量写成类似: int a __attribute__ ((aligned (1)));的方式,就可以实现单字节对齐了。
多谢!