Python struct 格式字符大小,为什么比应有的大?

Blo*_*gik 2 python binary struct python-3.x

简单的问题是否执行以下操作:

import struct
struct.calcsize("6cHcBHIIQ")
Run Code Online (Sandbox Code Playgroud)

当我认为它应该是 28 时返回 32。

通过执行以下操作(缺少 Q):

import struct
struct.calcsize("6cHcBHII")
Run Code Online (Sandbox Code Playgroud)

它返回 20,这是我所期望的。

并做:

import struct
struct.calcsize("Q")
Run Code Online (Sandbox Code Playgroud)

返回 8,这是正确的。

为什么将 Q 添加到顶部会导致 12 个额外字节而不是 8 个?

Python 3,windows 机器。

谢谢。

Joh*_*nck 5

结盟。有关更多详细信息,请参阅https://docs.python.org/3/library/struct.html#struct-alignment

试试struct.calcsize("=6cHcBHIIQ")