点击(此处)折叠或打开
-
print struct.calcsize('@HIHIIH65sII')
-
print struct.calcsize('!HIHIIH65sII')
-
print struct.calcsize('>HIHIIH65sII')
-
print struct.calcsize('
)
上面的代码在我 i7 870(windows 7 64位)的机器上输出是
96
91
91
91
之前我以为我pack后不是大端就是小端,后来发包服务器一直不接受,找半天没发现我这有什么问题......
我指定大端发去的不对,我以为不指定大端就是小端,结果发过去还不对
今天才发现不指定大小端会有这种问题!!!!!所以以后无论大小端都要指定一次- - orz
不然pack以后c结构的大小会导致问题
| Character | Byte order | Size and alignment |
|---|---|---|
| @ | native | native |
| = | native | standard |
| < | little-endian | standard |
| > | big-endian | standard |
| ! | network (= big-endian) | standard |
指定大端和小端后size那里才是standard(标准),不然的话可能会因为本地机器导致改变c结构的size