我将 Protobufs 存储在一些非易失性内存中以保存配置信息。我正在使用 NanoPB 对它们进行解码/编码。由于我不知道编码后的 Protobuf 有多大,所以当我从内存中获取序列化的 proto 并进行解码时,我只获取编码后的 protobuf 可能的最大字节数,即使它占用的字节数更少。
我的问题是:我是否必须存储一些数据来描述 protobuf 的字节数,以便我可以正确解码?
或者,如果我对序列化缓冲区进行 0 填充或使用其他方法,是否有办法让我自己确定。就目前而言,NanoPB 无法解码我给它的字节,很可能是因为在编码的原型结束后有一些垃圾数据,我无法判断序列化数据的长度。