Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想打包一个字节,然后是一个long。我的缓冲区只能包含 9 个元素。为什么我不能将它们打包到缓冲区中?
>>> from struct import * >>> calcsize('qB') 9 >>> calcsize('Bq') 12
它以不同的方式返回。为什么是这样?
顺便说一句,我正在使用 Python 2.7.3。
在您的第二个示例中,struct.calcsize假设字节后有 3 个字节的填充,以便 long long 可以从 4 字节边界开始。
struct.calcsize
如果您不指定填充,您会看到它们是等价的:
>>> calcsize ('Bq') 12 >>> calcsize('=Bq') 9