gpt4 book ai didi

c++ - 为什么 Protocol Buffer 字节在 C++ 中是字符串?

转载 作者:IT老高 更新时间:2023-10-28 22:28:12 28 4
gpt4 key购买 nike

Protocol Buffer 说它可以contain any arbitrary sequence of bytes .但是如果我的数据包含 '\0' , Protocol Buffer 如何从字符串变量中编码我的整个数据。

最佳答案

Protocol Buffer 的 C++ 实现将字节和字符串类型返回为 std::string。这个结构包含一个长度函数,告诉你对应的数据有多长(以及数据本身)。因此嵌入的 \0 字符没有特殊意义。

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

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

pb.set_foo( data, data_length );

关于c++ - 为什么 Protocol Buffer 字节在 C++ 中是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467567/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com