关于MDK下pack的定义方法

Posted linux_farmer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于MDK下pack的定义方法相关的知识,希望对你有一定的参考价值。

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

这里小结一下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;

以上是关于关于MDK下pack的定义方法的主要内容,如果未能解决你的问题,请参考以下文章

关于keil环境的搭建

官网下载keil MDK最新版本历史版本和芯片pack包

国内如何快速下载keil的pack文件包(干货)

国内如何快速下载keil的pack文件包(干货)

国内如何快速下载keil的pack文件包(干货)

MDK5.29,5.30,5.31,5.32,5.33, 5.34和各种pack软件包镜像下载(2021-04-06)