上下位机软件通信时,结构体的内存对齐问题
Posted dhqy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上下位机软件通信时,结构体的内存对齐问题相关的知识,希望对你有一定的参考价值。
嵌入式开发,上位机软件与下位机软件通信发送结构体数据时,由于两者 IDE 通常不同 (因此编译器通常也不同),导致上下位软件各自编译器的默认 “对齐系数” 也可能不同。
此时需在代码中指定一个一致的 “对齐系数” 。
注1:推荐指定 “对齐系数” 的格式如下:
#pragma pack (push, n)
//======================================================================
// Your Structure Definition Here
// Your Structure Definition Here
。。。
//======================================================================
//======================================================================
#pragma pack(pop)
注2:内存对齐规则可参考 —> 内存对齐 。
以上是关于上下位机软件通信时,结构体的内存对齐问题的主要内容,如果未能解决你的问题,请参考以下文章
c语言自定义类型——结构体,位段(匿名结构体,结构体的自引用,结构体的内存对齐)
深度剖析结构体@自定义类型1---结构体的声明,自引用,变量定义和初始化 + 结构体内存对齐 + 结构体传参 + 结构体实现位段