Protobuf 基础语法与 C++ 接口速查
Protobuf 基础语法与 C 接口速查一、message 数据结构定义.proto文件本质就是声明结构化数据message Person { optional uint32 age 1; optional string name 2; repeated uint32 scores 3; }编译后自动生成 C 类等价形式classPerson{public:// 普通字段uint32age()const;voidset_age(uint32 value);conststd::stringname()const;voidset_name(conststd::stringvalue);// 数组字段intscores_size()const;uint32scores(intindex)const;voidadd_scores(uint32 value);};二、package 命名空间在 proto 文件最顶部声明package xxx;proto 的package等价于 C 的namespace xxx使用时xxx::Person或者using namespace xxx;三、字段修饰符 C 操作接口1. optional 普通字段可选字段proto 定义optional uint32 age 1;C 接口person.set_age(18);// 写入值person.age();// 读取值person.has_age();// 判断字段是否被赋值person.clear_age();// 清空此字段2. repeated 数组/列表字段proto 定义repeated uint32 scores 3;C 接口person.add_scores(90);// 向数组追加元素person.scores_size();// 获取数组长度person.scores(0);// 读取下标为0的元素person.mutable_scores(0);// 获取可修改元素的指针复杂对象常用person.clear_scores();// 清空整个数组3. message 嵌套子对象proto 嵌套定义message Item { optional int32 id 1; } message Bag { optional Item item 1; }C 接口bag.mutable_item()-set_id(1001);// 获取可写子对象bag.item().id();// 只读访问子对象bag.has_item();// 判断子对象是否存在bag.clear_item();// 清空子对象四、核心方法记忆口诀场景方法名读取普通基础字段xxx()修改普通基础字段set_xxx(value)只读访问嵌套messagexxx()获取可写嵌套messagemutable_xxx()repeated数组元素个数xxx_size()repeated数组追加元素add_xxx()repeated数组读取下标元素xxx(i)repeated数组修改下标元素mutable_xxx(i)对象整体操作obj.CopyFrom(other);// 完整复制另一个对象obj.Clear();// 清空所有字段obj.ShortDebugString();// 打印结构化文本用于调试

相关新闻

【行业黑话】起底SSD量产防线:NAND颗粒被疯狂压榨背后,德国黑客、本土黑话与K1/K2/K3的炼狱全景

【行业黑话】起底SSD量产防线:NAND颗粒被疯狂压榨背后,德国黑客、本土黑话与K1/K2/K3的炼狱全景

我们在电脑、手机或者智能座舱里插上一块 M.2 NVMe SSD 时,往往只惊叹于它几千兆甚至上万兆的读写速度。但在工厂的流水线上,刚焊接出来的固态硬盘其实是一块“毫无灵智的废铁”——电脑读不出它,主控也不认识闪存。从一堆散装的电容、主控、…

2026/6/27 18:56:38阅读更多 →
锚定AI+智能体新代际竞争,IBM改变“智慧经营”的游戏规则

锚定AI+智能体新代际竞争,IBM改变“智慧经营”的游戏规则

随着智能体的爆发而进一步激发“AI”发展,我们正在进入“AI智能体”叠加所引发的新一轮代际竞争,企业急需建立代际竞争优势——通过掌握颠覆性技术、全新商业模式或底层架构创新,在竞争中形成对原有竞争对手的“降维打击”优势,这…

2026/6/27 18:56:38阅读更多 →
OpenCloudOS 原生适配玄武 CLI:一行命令,让国产算力跑起大模型

OpenCloudOS 原生适配玄武 CLI:一行命令,让国产算力跑起大模型

随着大模型技术的爆发,如何让 AI 在国产算力底座上跑得更稳、更易用,成为了开发者关注的核心痛点。近日, OpenCloudOS 社区正式宣布完成与清昴智能旗下“玄武 CLI”的深度适配。 作为 OpenCloudOS 生态中首个原生支持国产算力的大模型零门槛部…

2026/6/27 18:56:38阅读更多 →
鹤壁选白酒,怎么选不踩坑

鹤壁选白酒,怎么选不踩坑

我在鹤壁淇滨区开了多年烟酒店。 每天接触最多的就是来买酒的顾客。 说实话,很多人进店时是迷茫的。 今天分享几点经验,希望对你有帮助。一、先问自己:买来干什么用观点句:明确用途是选酒的第一步。展开说明:不同的场合…

2026/6/27 20:27:00阅读更多 →
Loop Engineering:写提示词的时代结束了,现在写循环

Loop Engineering:写提示词的时代结束了,现在写循环

Loop Engineering:写提示词的时代结束了,现在写循环适合人群:用 AI 写代码的开发者、想让 AI 自动干活的效率控、关注 AI 前沿的技术人01 一个让全行业炸锅的宣言6月2日,Claude Code 的负责人 Boris Cherny 在 WorkOS 主办的 Acqu…

2026/6/27 20:27:00阅读更多 →
2026年哪个AI游戏开发工具平台好用?SOON一站式创作精品,游戏资产生成神器

2026年哪个AI游戏开发工具平台好用?SOON一站式创作精品,游戏资产生成神器

引言独立开发者小陈的故事并不罕见。他花了三个月时间,用一款流行的游戏引擎学习编程,投入了五万元积蓄,最终产出的作品却因美术资源风格割裂、数值不平衡而难以获得玩家认可。在资源耗尽后,他无奈重返职场。传统游戏开发的成本结…

2026/6/27 20:27:00阅读更多 →
UBS Comm vs 传统通信框架:为何它能成为超算与金融场景的首选

UBS Comm vs 传统通信框架:为何它能成为超算与金融场景的首选

UBS Comm vs 传统通信框架:为何它能成为超算与金融场景的首选 【免费下载链接】ubs-comm Ubs-comm Provides high-performance, high-reliability, and ecosystem-compatible(user-mode socket/verbs over UB) communication protocols based on UB superpods. 项…

2026/6/27 20:27:00阅读更多 →
云翼自动化运维终极指南:如何利用API实现智能运维管理

云翼自动化运维终极指南:如何利用API实现智能运维管理

云翼自动化运维终极指南:如何利用API实现智能运维管理 【免费下载链接】yunyi Quickly cloud serve traditional data caching middleware and add unified proxy capabilities and service monitoring and management capabilities 项目地址: https://gitcode.co…

2026/6/27 20:26:59阅读更多 →
witty-diagnosis-agent与OpenCode集成:智能运维平台的最佳实践指南

witty-diagnosis-agent与OpenCode集成:智能运维平台的最佳实践指南

witty-diagnosis-agent与OpenCode集成:智能运维平台的最佳实践指南 【免费下载链接】witty-diagnosis-agent The witty-diagnosis-agent is an intelligent diagnostic tool that provides automated analysis and troubleshooting for complex system issues. 项…

2026/6/27 20:21:45阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/27 11:20:40阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/27 5:46:02阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/27 11:20:39阅读更多 →
10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声&#xff1a;Retrieval-based-Voice-Conversion-WebUI完整指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrie…

2026/6/27 0:04:03阅读更多 →
Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider&#xff1a;3分钟AI智能分层&#xff0c;彻底告别手动抠图时代 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的图像分层工作烦…

2026/6/27 0:04:03阅读更多 →
Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

1. 项目概述&#xff1a;为什么X-Frame-Options是Web安全的“防盗门”&#xff1f;最近在排查一个老项目的安全审计报告时&#xff0c;又被提到了“点击劫持”风险&#xff0c;矛头直指缺失的X-Frame-Options响应头。这已经不是第一次了&#xff0c;很多开发团队&#xff0c;尤…

2026/6/27 0:04:03阅读更多 →