Python结构格式的字符大小,为什么比应该的大?
如果要执行以下操作,请问一个简单的问题:Python结构格式的字符大小,为什么比应该的大?,python,python-3.x,struct,binary,Python,Python 3.x,Struct,Binary,如果要执行以下操作,请问一个简单的问题: import struct struct.calcsize("6cHcBHIIQ") 当我认为应该是28时返回32 通过执行以下操作(缺少Q): 它返回20,这是我所期望的 并且做: import struct struct.calcsize("Q") 返回8,这是正确的 为什么将Q添加到顶部会导致额外的12字节而不是8字节 Python 3,windows机器 谢谢。校准。有关更多详细信息,请参阅 尝试struct.calcsize(“=6cHcB
import struct
struct.calcsize("6cHcBHIIQ")
当我认为应该是28时返回32
通过执行以下操作(缺少Q):
它返回20,这是我所期望的
并且做:
import struct
struct.calcsize("Q")
返回8,这是正确的
为什么将Q添加到顶部会导致额外的12字节而不是8字节
Python 3,windows机器
谢谢。校准。有关更多详细信息,请参阅
尝试struct.calcsize(“=6cHcBHIIQ”)
对齐。有关更多详细信息,请参阅
尝试
struct.calcsize(“=6cHcBHIIQ”)
您还可以通过以更好的方式重新调整这些参数来最小化大小:
struct.calcsize("QIIHHB6cc")
产生
28
,您通常应该认为填充是任何结构大小问题的罪魁祸首。请参阅,以获取有关为什么结构大小有时可能比看起来的大的好答案。您也可以通过更好的方式重新调整结构大小来最小化大小:
struct.calcsize("QIIHHB6cc")
产生
28
,您通常应该认为填充是任何结构大小问题的罪魁祸首。请参阅,以获得关于结构大小有时可能比表面看起来大的原因的好答案。仅更新此问题:相同的行为可以在Ubuntu 14.04上复制。仅更新此问题:相同的行为可以在Ubuntu 14.04上复制。谢谢,这很有意义!谢谢,这很有道理!谢谢你。Id我正在从一个文件中解包字节,那么格式字符串的顺序必须正确,不是吗?谢谢。Id我正在从文件中解包字节,那么格式字符串的顺序必须正确,不是吗?