找回密码
 立即注册
查看: 330|回复: 0

protobuf父子嵌套结构的使用

[复制链接]
发表于 2022-4-2 20:29 | 显示全部楼层 |阅读模式
protobuf作为常用的消息形式,其中数据类型的嵌套使用是不可避免的。
大概有两种大类,三种形式将子结构赋值到父结构中。
如下:

//第一类:
syntax = "proto3";
package test;

message data {
  string content = 1;
  int32 age=2;
  bool isOld=3;
}

message person_message
{
        data info_data=1;
}

//第二类:
syntax = "proto3";
package test;

message data {
  string content = 1;
  int32 age=2;
  bool isOld=3;
}

message person_message
{
        repeated ata info_data=1;
}第一类中有两种赋值方式:
//方式1
peron_message person;
//子结构赋值
data *pData;
pData->set_content("nihao");
pData->set_age(12);
pData->set_isOld(10);
//装载到父结构中
person.set_allocated_data(pData);

//方式2
peron_message person;
//子结构赋值
data Data;
Data.set_content("nihao");
Data.set_age(12);
Data.set_isOld(10);

person.mutable_data().CopyFrom(Data);第二类的赋值方式如下:

//
person_message person;

data* pData=person.add_data();
pData->set_content("nihao");
pData->set_age(12);
pData->set_isOld(10);
本着自己申请的内存自己释放的原则,set_allocated的方法不太好,帮助释放了内存。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2025-5-8 04:10 , Processed in 0.130112 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表