为什么协议缓冲区的字节串是在C + +?(why protocol buffer bytes is

2019-06-26 06:26发布

协议缓冲说它可以包含的字节的任意序列 。 但如果我的数据包含“\ 0”,如何协议缓存可以从一个字符串可变编码我的整个数据。

Answer 1:

C ++实现协议缓冲区的返回字节和字符串类型为std::string 。 该结构包含一个长度函数告诉你相应的数据多长时间(以及数据本身。)因此,有嵌入式的没有特别的意义\0字符。

设置函数接受一个字符串太,或有接受缓冲区和长度的版本。 如果你想设置一个字段,你可以只是这样做:

pb.set_foo( std::string( data, data_length ) );

要么

pb.set_foo( data, data_length );


文章来源: why protocol buffer bytes is string in c++?