您的位置:首页 > 其它

关于MDK下pack的定义方法

2017-04-24 13:53 176 查看
我们使用数据流的过程中经常会用到结构体来进行解析,这个时候就需要使用字节对齐这个概念。不同的编译器的处理方法不一样。

这里小结一下MDK里面常用的几种方法:

1. 最常见的一种

使用#pragma packed struct
#pragma pack(1)
typedef	 struct __xxx {
u8			A8;
u16			A16;
} xxx_t;
#pragma pack()
这是做常用的方法,但是对于代码的跨编译平台使用的话,可能会比较麻烦,到时候每个结构体的定义都需要修改。

2. 使用__packed struct定义结构体

在结构体的定义中使用关键字,这样实现跨编译器使用的时候会方便很多

typedef	__packed struct __xxx {
u8			A8;
u16			A16;
} xxx_t;





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  __attribute__ MDK STM32 pack