2024-09-24 20:29:25 发布
网友
如果要执行以下操作,请回答一个简单的问题:
import struct struct.calcsize("6cHcBHIIQ")
当我认为应该是28时返回32。在
通过执行以下操作(缺少Q):
它返回20,这是我所期望的。在
然后做:
import struct struct.calcsize("Q")
返回8,这是正确的。在
为什么把Q加在前一个上会导致额外的12个字节而不是8个?在
Python3,windows机器。在
谢谢。在
您还可以通过以更好的方式重新调整这些值来最小化大小:
struct.calcsize("QIIHHB6cc")
产生28,通常情况下,填充是任何结构大小问题的罪魁祸首。请参阅Why isn't sizeof for a struct equal to the sum of sizeof of each member?以获得有关为什么结构大小有时可能比它们看起来更大的好答案。在
28
对齐。有关详细信息,请参见https://docs.python.org/3/library/struct.html#struct-alignment。在
尝试struct.calcsize("=6cHcBHIIQ")。在
struct.calcsize("=6cHcBHIIQ")
您还可以通过以更好的方式重新调整这些值来最小化大小:
产生
28
,通常情况下,填充是任何结构大小问题的罪魁祸首。请参阅Why isn't sizeof for a struct equal to the sum of sizeof of each member?以获得有关为什么结构大小有时可能比它们看起来更大的好答案。在对齐。有关详细信息,请参见https://docs.python.org/3/library/struct.html#struct-alignment。在
尝试
struct.calcsize("=6cHcBHIIQ")
。在相关问题 更多 >
编程相关推荐