protobuf的数据类型和C++数据类型

protobuf支持的数据类型不是很丰富

protobuf属于轻量级的,因此不能支持太多的数据类型,下面是protobuf支持的基本类型列表,一般都能满足需求,不过在选择方案之前,还是先看看是否都能支持,以免前功尽弃。同样该表也值得收藏,作为我们在定义类型时做参考。

.proto type

c++

notes

double

double

 

float

float

 

int32

int32

使用可变长编码方式,负数时不够高效,应该使用sint32

int64

int64

同上

uint32

uint32

使用可变长编码方式

uint64

uint64

同上

sint32

int32

使用可变长编码方式,有符号的整型值,编码时比通常的int32高效

sint64

sint64

同上

fixed32

uint32

总是4个字节,如果数值总是比2^28大的话,这个类型会比uint32高效

fixed64

uint64

总是8个字节,如果数值总是比2^56大的话,这个类型会比uint64高效

sfixed32

int32

总是4个字节

sfixed64

int64

总是8个字节

bool

bool

 

string

string

一个字符串必须是utf-8编码或者7-bitascii编码的文本

bytes

string

可能包含任意顺序的字节数据


你可能感兴趣的:(c++,proto)