gpt4 book ai didi

Python 结构体长度不正确

转载 作者:行者123 更新时间:2023-12-01 02:37:43 29 4
gpt4 key购买 nike

Python 结构的几个问题。请告诉我什么是正确的。

  1. Document提到 l/L 的长度为 4,但是当使用 calcsize 检查时,它给出 8。

    >>> struct.calcsize('l')
    8
  2. 结构模块 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

最佳答案

详细阐述 jonrsharpe 在评论中发布的答案。

  1. “标准大小”列是指使用标准大小时打包值的大小(以字节为单位);也就是说,当格式字符串以 '<'、'>'、'!' 之一开头时或“=”。使用 native 大小时,打包值的大小取决于平台。

    >>> struct.calcsize('l')
    8

    >>> struct.calcsize('=l')
    4
  2. 因为填充。使用 = 不使用填充。

    >>> struct.calcsize('=8s2sIII30s32s6s')
    90

关于Python 结构体长度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048166/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com