当前位置: 首页 > news >正文

如何做购物网站推广wordpress投递文章插件

如何做购物网站推广,wordpress投递文章插件,0元首充的手游平台,php电子商务网站开发目录 1. Protobuf 概述1.1 定义1.2Protobuf的优势 2. Protobuf 语法3、序列号和反序列化3.1 .pb.h 头文件3.2 序列化3.3 反序列化 4、测试用例 Protobuf详细讲解链接 1. Protobuf 概述 1.1 定义 protobuf也叫protocol buffer是google 的一种数据交换的格式#xff0c;它独立… 目录 1. Protobuf 概述1.1 定义1.2Protobuf的优势 2. Protobuf 语法3、序列号和反序列化3.1 .pb.h 头文件3.2 序列化3.3 反序列化 4、测试用例 Protobuf详细讲解链接 1. Protobuf 概述 1.1 定义 protobuf也叫protocol buffer是google 的一种数据交换的格式它独立于语言独立于平台。google 提供了多种语言的实现java、c#、c、go 和 python 等每一种实现都包含了相应语言的编译器以及库文件。 由于它是一种二进制的格式比使用 xml 、json进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式可以用于诸如网络传输、配置文件、数据存储等诸多领域。 1.2Protobuf的优势 使用Protobuf 进行数据通信的优势可以简短概括为以下几点 效率二进制格式序列化和反序列化速度快。紧凑性数据体积小节省存储和传输带宽。类型安全编译时类型检查减少运行时错误。向后兼容支持平滑升级易于维护。跨语言支持多种编程语言。扩展性支持消息扩展适应不断变化的数据需求。字段编号唯一标识便于版本控制和更新。 2. Protobuf 语法 Protobuf文件后缀指定为 .proto在文件的第一行需要指定Protobuf的版本号有两个版本Protobuf 2 和 Protobuf 3此处我们使用的是版本3。 // Person.proto syntax proto3;// 在该文件中对要序列化的结构体进行描述 message Person {int32 id 1;bytes name 2;bytes sex 3; int32 age 4; }message后面的名字就是生成的类的名字自己指定一个合适的名字即可 等号后面的编号要从1开始每个成员都有一个唯一的编号不能重复一般连续编号即可。 .proto文件编辑好之后就可以使用protoc工具将其转换为C文件了 protoc -I path .proto文件 --cpp_out输出路径(存储生成的c文件)如果想要在当前目录下也就是和.proto文件在一级目录下生成pb.cc和pb.h文件执行 $ protoc ./Person.proto --cpp_out. # 或者使用 -I 参数 $ protoc -I ./ Person.proto --cpp_out.3、序列号和反序列化 3.1 .pb.h 头文件 通过protoc 命令对.proto文件的转换得到的头文件中有一个类这个类的名字和 .proto文件中message关键字后边指定的名字相同.proto文件中message消息体的成员就是生成的类的私有成员。 那么如何访问生成的类的私有成员呢 可以调用生成的类提供的公共成员函数这些函数有如下规律 清空(初始化) 私有成员的值: clear_变量名()获取类私有成员的值: 变量名()给私有成员进行值的设置: set_变量名(参数)得到类私有成员的地址, 通过这块地址读/写当前私有成员变量的值: mutable_变量名()如果这个变量是数组类型: 1数组中元素的个数: 变量名_size() 2添加一块内存, 存储新的元素数据: add_变量名() 、add_变量名(参数) 3.2 序列化 序列化是指将数据结构或对象转换为可以在储存或传输中使用的二进制格式的过程。在计算机科学中序列化通常用于将内存中的对象持久化存储到磁盘上或者在分布式系统中进行数据传输和通信。 Protobuf 中为我们提供了相关的用于数据序列化的 API如下所示 // 头文件目录: google\protobuf\message_lite.h // --- 将序列化的数据 数据保存到内存中 // 将类对象中的数据序列化为字符串, c 风格的字符串, 参数是一个传出参数 bool SerializeToString(std::string* output) const; // 将类对象中的数据序列化为字符串, c 风格的字符串, 参数 data 是一个传出参数 bool SerializeToArray(void* data, int size) const;// ------ 写磁盘文件, 只需要调用这个函数, 数据自动被写入到磁盘文件中 // -- 需要提供流对象/文件描述符关联一个磁盘文件 // 将数据序列化写入到磁盘文件中, c 风格 // ostream 子类 ofstream - 写文件 bool SerializeToOstream(std::ostream* output) const; // 将数据序列化写入到磁盘文件中, c 风格 bool SerializeToFileDescriptor(int file_descriptor) const;3.3 反序列化 反序列化是指将序列化后的二进制数据重新转换为原始的数据结构或对象的过程。通过反序列化我们可以将之前序列化的数据重新还原为其原始的形式以便进行数据的读取、操作和处理。 Protobuf 中为我们提供了相关的用于数据序列化的 API如下所示 // 头文件目录: google\protobuf\message_lite.h bool ParseFromString(const std::string data) ; bool ParseFromArray(const void* data, int size); // istream - 子类 ifstream - 读操作 // wo ri // w-写 o: ofstream , r-读 i: ifstream bool ParseFromIstream(std::istream* input); bool ParseFromFileDescriptor(int file_descriptor);4、测试用例 开发环境Ubuntu20.04、VScode 本人仓库地址基于VScode和C 实现Protobuf数据格式的通信
http://www.ho-use.cn/article/10816821.html

相关文章:

  • 网络竞价网站优化需要哪些工具
  • 想做个网站要多少钱进入公众号提示微信授权失败
  • 建设网站都要学些什么北京网站建设公司怎么排版
  • 杭州网站建设哪家权威高端网站登录入口
  • 网站代理建设wordpress 模板吧
  • 天津 公司做网站网站制作河南
  • 重庆网站建设重庆零臻科技行赣州互联网公司
  • 中山网站建设文化报价网站开发使用技术第二版答案
  • 艾迪网络专业的网站建设公司网站建设流程有几个阶段
  • 企业网站 三网系统win7系统做asp网站
  • 石家庄网络推广建站网站推广工作如何做
  • 陕西做天然气公司网站谷歌浏览器网页版进入
  • 如何关闭网站 备案个人网站公司网站区别经营区别
  • 中英文切换网站开发广告学
  • 建站 网站程序如何购买网站虚拟主机
  • 网站源代码分列怎么做7c框架 网站建设
  • 旅游网站开发报告淮安做网站优化
  • 朝阳市建设厅查询网站企业文化墙设计公司
  • 用php做京东网站页面专业网站建设推广
  • 如何禁止某ip访问网站做网站游戏的网站有哪些
  • 怎么查看网站访问速度石家庄免费自助建站模板
  • 福建住房与城乡建设网站wordpress彩票类模板
  • 淘宝佣金推广网站建设中建八局第一建设有限公司电话
  • 网站策划与设计(百度推广可以自己开户吗
  • 泰安集团网站建设地点优化搜索引擎的方法
  • 电脑网站建设方案网站怎么用栏目做地区词
  • 交易网站备案p2p视频网站开发
  • 微信网站公司买了个网站源码后要怎么用
  • wordpress无法创建页面合肥seo按天扣费
  • 做网站订金为什么需要交那么多做积分商城网站