gpt4 book ai didi

c++ - protocbuf中未赋值的可选字段如何分配空间

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:06 24 4
gpt4 key购买 nike

如果我定义:

message A {
required int32 first = 1;
optional int32 second = 2;
}

set_second(0) then serializeToArray()和set_second(14353355445) then serializeToArray()的空间大小不一样

有没有办法让它们有相同大小的空间?

在其他方面,如何使未赋值的可选字段具有与赋值相同的空间大小?

最佳答案

我的建议是:不要尝试使用 Protobuf 执行此操作。 Protobuf 并非旨在为您提供固定或可预测的大小,因此如果这是您想要的,那么 Protobuf 不是完成这项工作的正确工具。

当然,您可以使用 hack,例如使用 fixed32 并尝试确保您的字段始终具有非默认值,但那样您就在与您的工具作斗争。将来可能会发生其他变化,这会使尺寸再次变得不可预测。最好选择符合您需求的工具。

关于c++ - protocbuf中未赋值的可选字段如何分配空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39644416/

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