我有两个关于python文档中struct
的问题:
字节顺序,大小和对齐:对于网络通信,我应该使用!
而不是=
吗?
例:struct.pack("!BBH", 1, 12, 512)
or struct.pack("=BBH", 1, 12, 512)
?
格式字符:unsigned int (I)和unsigned long (L)之间的区别是什么,因为它们都是4字节?
谢谢你的时间,如果这是一个愚蠢的问题,请原谅我:-)
如果您希望您的代码无论在哪里运行都产生相同的输出,为什么要使用=
呢?当然,是的,你应该使用一个对每个人都有相同含义的代码。标准是!
,所以使用!
。
读取格式代码表上方的标题:
' Standard size '列指的是使用标准大小时被打包值的字节大小;也就是说,当格式字符串以'<', '>', '!'或'='。当使用本机大小时,打包值的大小取决于平台。
因此,如果您使用@
格式代码或省略格式代码,I
的大小和L
的大小理论上可能不同,这取决于您的平台。