您的位置:首页 > 其它

protobuf数据类型

2015-12-21 14:38 316 查看
Protobuf定义了一套基本数据类型。几乎都可以映射到C++\Java等语言的基础数据类型.


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
N 表示打包的字节并不是固定。而是根据数据的大小或者长度。

例如int32,如果数值比较小,在0~127时,使用一个字节打包。

关于枚举的打包方式和uint32相同。

关于message,类似于C语言中的结构包含另外一个结构作为数据成员一样。

关于 fixed32 和int32的区别。fixed32的打包效率比int32的效率高,但是使用的空间一般比int32多。因此一个属于时间效率高,一个属于空间效率高。根据项目的实际情况,一般选择fixed32,如果遇到对传输数据量要求比较苛刻的环境,可以选择int32.
http://blog.csdn.net/superbfly/article/details/17920383
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: