我在python文档中有两个关于struct
的问题:
Byte Order, Size, and Alignment:对于网络通信,我应该使用!
代替=
吗?
例如:struct.pack("!BBH", 1, 12, 512)
或struct.pack("=BBH", 1, 12, 512)
?
Format characters:unsigned int(I)和unsigned long(L)有什么区别,因为两者都是4个字节?
感谢您的时间,如果这是一个愚蠢的问题,请原谅我: - )
答案 0 :(得分:2)
如果您希望代码在运行的任何位置生成相同的输出,为什么曾使用=
?当然,是的,您应该使用对每个人来说意味着相同的代码。标准为!
,因此请使用!
。
阅读格式代码表上方的标题:
“标准大小”列是指使用标准大小时打包值的大小(以字节为单位);也就是说,当格式字符串以'<','>','!'之一开头时或'='。使用本机大小时,打包值的大小取决于平台。
因此,如果您使用@
格式代码或省略格式代码,I
的大小和L
的大小理论上可能会有所不同,具体取决于您的平台。< / p>