我正在开发一个热升级功能,需要打包一个结构数组,以便为新版本找到它们.我真的想避免为每个可能的版本转换添加转换函数.这合理吗?
对结构的最可能的更改是将来要将更多字段添加到结构中,如果发生这种情况,则可以使用新字段的默认值.我还将很快面临将结构数组保存到配置文件中的任务,因此可以应用于热升级和配置保存的答案可以获得额外的功劳.
我不必担心热更新机制我只是给它一个指针和一个大小,它做了梦幻般的魔术:)
Reu*_*nen 10
对结构的最可能的更改是将来要将更多字段添加到结构中,如果发生这种情况,则可以使用新字段的默认值.
从版本1开始,始终sizeof(myStruct)在每个结构的开头包含一个字段.然后,当您需要添加新字段时,始终在每个结构的末尾执行此操作,而不是在中间.现在,当接收(或从文件读取)时,首先只读取size字段,以便知道它之后会有多少字节.如果大小小于sizeof(myStruct)接收器/读取器确定的大小,那么您知道缺少某些内容,并且需要默认值.