protobuf数据类型
2015-12-21 14:38
316 查看
Protobuf定义了一套基本数据类型。几乎都可以映射到C++\Java等语言的基础数据类型.
N 表示打包的字节并不是固定。而是根据数据的大小或者长度。
例如int32,如果数值比较小,在0~127时,使用一个字节打包。
关于枚举的打包方式和uint32相同。
关于message,类似于C语言中的结构包含另外一个结构作为数据成员一样。
关于 fixed32 和int32的区别。fixed32的打包效率比int32的效率高,但是使用的空间一般比int32多。因此一个属于时间效率高,一个属于空间效率高。根据项目的实际情况,一般选择fixed32,如果遇到对传输数据量要求比较苛刻的环境,可以选择int32.
http://blog.csdn.net/superbfly/article/details/17920383
protobuf 数据类型 | 描述 | 打包 | C++语言映射 |
bool | 布尔类型 | 1字节 | bool |
double | 64位浮点数 | N | double |
float | 32为浮点数 | N | float |
int32 | 32位整数、 | N | int |
uin32 | 无符号32位整数 | N | unsigned int |
int64 | 64位整数 | N | __int64 |
uint64 | 64为无符号整 | N | unsigned __int64 |
sint32 | 32位整数,处理负数效率更高 | N | int32 |
sing64 | 64位整数 处理负数效率更高 | N | __int64 |
fixed32 | 32位无符号整数 | 4 | unsigned int32 |
fixed64 | 64位无符号整数 | 8 | unsigned __int64 |
sfixed32 | 32位整数、能以更高的效率处理负数 | 4 | unsigned int32 |
sfixed64 | 64为整数 | 8 | unsigned __int64 |
string | 只能处理 ASCII字符 | N | std::string |
bytes | 用于处理多字节的语言字符、如中文 | N | std::string |
enum | 可以包含一个用户自定义的枚举类型uint32 | N(uint32) | enum |
message | 可以包含一个用户自定义的消息类型 | N | object of class |
例如int32,如果数值比较小,在0~127时,使用一个字节打包。
关于枚举的打包方式和uint32相同。
关于message,类似于C语言中的结构包含另外一个结构作为数据成员一样。
关于 fixed32 和int32的区别。fixed32的打包效率比int32的效率高,但是使用的空间一般比int32多。因此一个属于时间效率高,一个属于空间效率高。根据项目的实际情况,一般选择fixed32,如果遇到对传输数据量要求比较苛刻的环境,可以选择int32.
http://blog.csdn.net/superbfly/article/details/17920383
相关文章推荐
- 《数字图像处理》笔记
- dubbo/dubbox(一)源码编译
- 轻量级JavaEE企业应用实战(十一)
- [leetcode] 52. N-Queens II 解题报告
- Java 服务端开发(二)
- 我常去逛的iOS干货文章、blog等【持续更新】 --转
- Python GET REMOTE SERVER'S INFO
- 2015读过的书
- 第四十九天:mysql-5.7不能登录的问题
- 基数排序的若干种方法
- 几种基本的数字正则表达式[转,以备以后使用]
- Android中Fragment与Activity交互
- iOS隐藏UITableView下面多余的tableView的线条
- java设计模式之——代理模式
- Hadoop读书笔记(二)HDFS的shell操作
- 哈理工2015 千万次的问(数组的应用)
- 获取到MAC地址
- linux下如何启动/停止/重启mysql:
- SVN - 分支开发
- 51单片机非精确延时函数