原文链接:http://blog.csdn.net/humanking7/article/details/50710108
关于数据打包时的数据对齐问题
分析其中一列,可知
当参数“Byte alignment”为“8”的时候,也就是把这个uint8对齐为8个字节(uint8本来只占1个字节,而double占8个字节)
不管你的数据类型是什么,都会将这个数据类型的大小扩展为8个字节,不够的后面补0
[2 字节]对齐
当 Byte alignment = 2 时,也就是把这个 uint8 对齐为 2个字节
得到的数据如下(多组数据,1列一组):
分析其中一列,可知
当参数“Byte alignment”为“2”的时候,也就是把这个uint8对齐为2个字节(uint8本来只占1个字节,而double占8个字节)
[1 字节]对齐
当 Byte alignment = 1 时,也就是把这个 uint8 对齐为 1个字节
得到的数据如下(多组数据,1列一组):
分析其中一列,可知
当参数“Byte alignment”为“1”的时候,也就是把这个uint8对齐为1个字节(uint8本来只占1个字节,而double占8个字节)
总结
一般没有特殊要求时还是将“Byte alignment”设为“1”比较容易理解和操作,尤其是Matlab与非Matlab环境进行UDP通讯更要注意这个参数。
本帖最后由 cb_z0729 于 2020-02-22 22:19 编辑
请登录后评论~