gpt4 book ai didi

c - 将 C 结构发送到您的代码的 future 版本?

转载 作者:行者123 更新时间:2023-12-02 05:29:37 24 4
gpt4 key购买 nike

我正在开发一个热升级功能,需要打包一个结构数组以供新版本找到它们。我真的想避免为每个可能的版本转换添加转换函数。这合理吗?
结构最有可能的变化是在未来将更多字段添加到结构中,如果发生这种情况,则新字段的默认值将可用。我也将很快面临将结构数组保存到配置文件中的任务,因此对于可应用于热升级和配置保存的答案,我将加分。
我不必担心热更新机制,我只需要给它一个指针和一个大小,它就会产生奇妙的魔力:)

最佳答案

The most likely change to the struct is for more fields to be added to the structure in the future and if this happens then a default value for the new field will be available.

从版本 1 开始,始终将 sizeof(myStruct) 作为字段包含在每个结构的开头。然后,当您需要添加新字段时,请始终在每个结构的末尾添加新字段,而不要在中间添加。现在在接收(或从文件中读取)时,首先只读取大小字段,这样您就知道它后面有多少字节。如果大小小于接收器/阅读器确定的 sizeof(myStruct),那么您就知道缺少某些东西,并且需要默认值。

关于c - 将 C 结构发送到您的代码的 future 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1144913/

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