shr*_*nde 1 python struct python-2.7
python 结构的几个问题。请让我知道什么是正确的。
文档提到 l/L 的长度为 4,但是当使用 calcsize 检查时,它给出 8。
>>> struct.calcsize('l')
8
Run Code Online (Sandbox Code Playgroud)struct module calcsize 给出了错误的大小。如果计算单个元素大小,其总和为 90,但与 calcsize 一起计算时,其结果为 92。
>>> struct.calcsize('8s2sIII30s32s6s')
92
>>> struct.calcsize('8s')
8
>>> struct.calcsize('2s')
2
>>> struct.calcsize('III')
12
>>> struct.calcsize('30s')
30
>>> struct.calcsize('32s')
32
>>> struct.calcsize('6s')
6
Run Code Online (Sandbox Code Playgroud)详细阐述 jonrsharpe 在评论中发布的答案。
\n\n\xe2\x80\x98Standard size\xe2\x80\x99 列是指使用标准大小时打包值的大小(以字节为单位);也就是说,当格式字符串以 '<'、'>'、'!' 之一开头时 或“=”。使用本机大小时,打包值的大小取决于平台。
\n\n>>> struct.calcsize('l')\n8\n\n>>> struct.calcsize('=l')\n4\nRun Code Online (Sandbox Code Playgroud)因为有垫子。使用 = 不使用填充。
\n\n>>> struct.calcsize('=8s2sIII30s32s6s')\n90\nRun Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |