CW10.2 Structure Packing issues

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

CW10.2 Structure Packing issues

跳至解决方案
1,310 次查看
ignisuti
Contributor IV

Can someone please help me explain why sizeof( EVENT_LOG_t ) returns 8? It should be 6, right?

 

Does this have something to do with the way this structure is packed? How can I fix this?

 

My target MCU is Kinetis K10.

 

typedef struct  {  u32 time;  u8 type;  u8 code;}EVENT_LOG_t;
标签 (1)
0 项奖励
回复
1 解答
1,117 次查看
stanish
NXP Employee
NXP Employee

Hello ignisuti,

 

You are right. This is caused by adding the padding bytes to keep data alignment. 

If you need to get rid of these padding bytes you can add pragma:

 

#pragma pack(1)

 

 

but this might have an impact on speed performance.

 

Stanish

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,118 次查看
stanish
NXP Employee
NXP Employee

Hello ignisuti,

 

You are right. This is caused by adding the padding bytes to keep data alignment. 

If you need to get rid of these padding bytes you can add pragma:

 

#pragma pack(1)

 

 

but this might have an impact on speed performance.

 

Stanish

0 项奖励
回复