1. 程式人生 > >protobuf中資料格式與型別

protobuf中資料格式與型別

訊息格式
訊息由至少一個欄位組合而成,類似於C語言中的結構體,每個欄位都有一定的格式:
資料型別 欄位名稱 = 唯一的編號標籤值;

欄位名稱:protobuf建議以下劃線命名而非駝峰式
唯一的編號標籤:代表每個欄位的一個唯一的編號標籤,在同一個訊息裡不可以重複。這些編號標籤用與在訊息二進位制格式中標識你的欄位,並且訊息一旦定義就不能更改。需要說明的是標籤在1到15範圍的採用一個位元組進行編碼,所以通常將標籤1到15用於頻繁發生的訊息欄位。編號標籤大小的範圍是1到229。此外不能使用protobuf系統預留的編號標籤(19000 ~19999)。

資料型別
.proto型別 C++型別 備註
double double 64位浮點數
float float 32位浮點數
int32 int32 32位整數
int64 int64 64位整數
uint32 uint32 32位無符號整數
uint64 uint64 64位無符號整數
sint32 int32 32位整數,處理負數效率比int32更高
sint32 sint64 64位整數,處理負數效率比int64更高
fixed32 uint32 總是4個位元組。如果數值總是比總是比228大的話,這個型別會比uint32高效。
fixed64 uint64 總是8個位元組。如果數值總是比總是比256大的話,這個型別會比uint64高效。
sfixed32 int32 總是4個位元組
sfixed64 int64 總是8個位元組
bool bool 布林型別
string string 一個字串必須是UTF-8編碼或者7-bit ASCII編碼的文字
bytes string 處理多位元組的語言字元、如中文
enum enum 列舉
message object of class 自定義的訊息型別