小编Pin*_*GNU的帖子

结构成员对齐 - 使用16位和32位编译器的不同sizeof

我有一个结构用于构建控制板的消息我需要保持C167 16位Keil编译器和32位Tricore gcc编译器之间的软件兼容性.

typedef struct
{
    unsigned char new_weld_status[2];
    UINT32 new_weld_count;
    UINT16 new_weld_fail_count;
} NEW_PULSE_DATA;
Run Code Online (Sandbox Code Playgroud)

该数组new_weld_status[2]在16位编译器上占用2个字节,在32位编译器上占用4个字节.我正在考虑new_weld_status[2]用gcc编译时替换所有的联合.但是有一个我可以用于gcc的开关,使chars适合/对齐2个字节?

谢谢

c embedded gcc memory-alignment struct-member-alignment

3
推荐指数
1
解决办法
600
查看次数