24

我找不到 proto 中是否可能有 char / byte 类型。

我可以在这里看到各种类型:

但我在那里找不到字节类型甚至 int16 类型。

4

1 回答 1

28

不,没有固定的 1 字节类型。固定长度只有 4 和 8 字节变体。大多数其他数值被编码为“varint”,它的长度取决于大小(和符号,但“zigzag”在那里起作用)。因此,您可以将值 0-127 的字节存储在一个字节中,将 128-255 的字节存储在两个字节中。16 位值将占用 1 到 3 个字节,具体取决于幅度(和符号 /zigzag 等)。

对于倍数,8 位版本有“字节”,其余的有“打包”;这避免了每个值的字段标头成本。

于 2013-07-22T10:56:23.433 回答