谷歌 Protocol Buffer 中没有小标量类型背后的原因是什么?
https://developers.google.com/protocol-buffers/docs/proto#scalar
更具体地说,对于 C++,我是否将 uint16_t
作为两个 bytes
在 gpb 中传输?我正在研究将现有的基于消息的协议(protocol)转换为 gpb,这对我来说似乎有点奇怪。
最佳答案
Gbp使用变长编码,意味着传输的整数的大小取决于整数的值。
小整数将仅使用几个字节发送。
这是有关 gbp encoding 的指南的链接
特别是,如果你只有一个 short int 的特定情况(而且不是很多,在这种情况下你可能想使用 bytes
),你应该简单地转换所有 uint16_t
到 uint32_t
并让 varints 做这些事情。
关于c++ - 小型标量类型和谷歌 Protocol Buffer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42295695/