恭喜,你发布的帖子
发布于 2025-10-01 11:01:31
6楼
有些概念,我认为还是要澄清一下:
1,我们注意到data占用8个字节,但是在data这个结构体中的所有数据占用字节总和是6个。这是我们需要注意的问题。
数据(结构)在数据块的存放总是以偶数地址开始的(单字节数据除外,临近的字节与字节或者字节与位会合并成偶数地址开始的字),在此情况下定义数据结构的长度是5个字节,但是实际占用的存储区域长度是6个字节,定义数据结构优化条件和非优化条件下并没有区别,只是在不同条件下占用的数据存储区的方式不同,并不是数据结构本身的定义长度有变化。因此如果定义了2个前述的5字节数据结构,那么占用的数据存储区域就会是12字节,而非10个字节
这个结构序列化后占用了多少字节的数据存储区呢? 答案是16个字节
3,对于bool类型的数组。不同CPU占用的字节数不同。比如X86系列CPU以及1500优化块,每个bool类型占用一个字节。对于非优化块,每个bool类型占用一个bit。Sizeof采用非优化块标准。
博途环境下编程,提倡的就是优化方式编程
并且同样的而优化访问方式,S7-1200与1500也是有差别的,单个数据与结构数据在不同模式下对数据存储区的占用也是有差别的。
因此,提到通信的数据交互,我们不建议直接使用类似本楼的原始结构数据,而是转化为字节数组后
还有个建议,编程中尽量不要定义非整数字节长度的位数组变量
请填写推广理由:
分享
只看
楼主