(一)
字段类型
Protobuf定义了一套基本数据类型
(二)
字段编号
消息定义中的每个字段都有一个唯一的编号。这些字段编号用于以二进制格式标识您的字段,一旦您的消息类型被使用,就不应该被更改。
Tag的取值范围最小是1,最大是229229-1,但但 19000~19999 是 protobuf 预留的,用户不能使用。
虽然 编号的定义范围比较大,但不同 编号也会对 protobuf 编码带来一些影响:
1 ~ 15:单字节编码
16 ~ 2047:双字节编码
使用频率高的变量最好设置为1~15,这样可以减少编码后的数据大小,但由于编号一旦指定不能修改,所以为了以后扩展,也记得为未来保留一些 1~15 的 编号
字段规则
singular: 可以有零个或其中一个字段(但不超过一个)。
repeated: 该字段可以重复任意次数(包括零次)。重复值的顺序将被保留。
在proto 3中,可扩展的repeated字段为数字类型的默认编码。
(三)
编译.proto 文件
在.proto 文件中定义了数据结构,这些数据结构是面向开发者和业务程序的,并不面向存储和传输。当需要把这些数据进行存储或传输时,就需要将这些结构数据进行序列化、反序列化以及读写。ProtoBuf 提供相应的接口代码,可以通过 protoc 这个编译器来生成相应的接口代码,命令如下:
protoc编译
protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto
# $SRC_DIR: .proto 所在的源目录
# --cpp_out: 生成 c++ 代码
# $DST_DIR: 生成代码的目标目录
# xxx.proto: 要针对哪个 proto 文件生成接口代码
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!