上下位机软件通信时,结构体的内存对齐问题

Posted dhqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上下位机软件通信时,结构体的内存对齐问题相关的知识,希望对你有一定的参考价值。

嵌入式开发,上位机软件与下位机软件通信发送结构体数据时,由于两者 IDE 通常不同 (因此编译器通常也不同),导致上下位软件各自编译器的默认 “对齐系数” 也可能不同。
此时需在代码中指定一个一致的 “对齐系数” 。
 
注1:推荐指定 “对齐系数” 的格式如下:
  #pragma  pack (push, n)
  //======================================================================
  // Your Structure Definition Here
    。。。
  //======================================================================
  #pragma pack(pop)
 
注2:内存对齐规则可参考 —> 内存对齐


以上是关于上下位机软件通信时,结构体的内存对齐问题的主要内容,如果未能解决你的问题,请参考以下文章

c语言自定义类型——结构体,位段(匿名结构体,结构体的自引用,结构体的内存对齐)

浅谈结构体,结构体内存对齐

浅谈结构体,结构体内存对齐

浅谈结构体,结构体内存对齐

深度剖析结构体@自定义类型1---结构体的声明,自引用,变量定义和初始化 + 结构体内存对齐 + 结构体传参 + 结构体实现位段

内存对齐:C/C++编程中的重要性和技巧