python结构中的填充字节
pythonpython结构中的填充字节,python,python-3.x,struct,Python,Python 3.x,Struct,pythonstruct类型中的pad字节(x)是什么?它是一个值为0的无符号字符,或者它到底是什么样子的/为什么它是struct对象中可用的类型之一 例如,执行以下操作之一有什么区别: >>> struct.pack('BB', 0, ord('a')) b'\x00a' >>> struct.pack('xB', ord('a')) b'\x00a' 它对于匹配另一个系统所需的长度非常有用 比如说。在我的工作中,有一个服务器发送一个固定大小的头,并期望固
struct
类型中的pad字节(x)是什么?它是一个值为0
的无符号字符,或者它到底是什么样子的/为什么它是struct
对象中可用的类型之一
例如,执行以下操作之一有什么区别:
>>> struct.pack('BB', 0, ord('a'))
b'\x00a'
>>> struct.pack('xB', ord('a'))
b'\x00a'
它对于匹配另一个系统所需的长度非常有用
比如说。在我的工作中,有一个服务器发送一个固定大小的头,并期望固定大小的消息。这保证了前20个字节是一个报头,字节0-8是消息大小
什么类型的垫子并不重要。这基本上是垃圾数据。不过,unsigned char 0是一个很好的选择,也是struct.pack使用的字符。我不知道它是否总是零,但我可以回答rest,看起来struct.pack中的字节实际上是未设置的,至少对于CPython来说是这样