protobuf 一个.proto 文件的简单讲解

本文详细介绍了 Google 的 Protocol Buffers(简称 Protobuf)消息结构定义方式,包括基本的数据类型、字段限定符以及如何定义复杂的嵌套消息结构。通过示例展示了必填字段、可选字段和重复字段的使用,同时解释了枚举类型的定义及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示例代码来自:https://developers.google.com/protocol-buffers/docs/cpptutorial


<span style="font-size:18px;">package tutorial;	// 类似C++ 的namespace. tutorial::Person objPerson;

message Person {	// 定义一个Person 的消息结构类。class Person;
	// required 必须的, 字段限定标识
	// optional 可有可无的, 字段限定标识
	// repeated 可出现任意次的, 字段限定标识
  required string name = 1;	// 最后面的1 表示现有字段的序列号,在维护过程中不要修改它。你可以删除它。而且并非一定要从1开始,也并非一定要连接。
  required int32 id = 2;
  optional string email = 3;	// 可以理解为动态数组

  enum PhoneType {
    MOBILE = 0;<span style="white-space:pre">	</span>// 这个后面的0, 1, 2 仅仅是枚举值,并非上面的字段序列号。但是却不能不定义,具体原因也不清楚。
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];	// type 的默认值为HOME
  }

  repeated PhoneNumber phone = 4;
}

message AddressBook {
  repeated Person person = 1;
}</span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值