如果您的应用程序或类需要读写首选项或数据,请考虑使用二进制格式,而不使用文本格式。虽然文本格式更易于手工调试和检查,但二进制格式可使结构更紧凑且更容易(或无需)分析。
使用二进制格式的提示:
确保所有元素都经过字/双字对齐,以便您可以将其映射到内存。
对于可能在一台机器上生成数据而在另一台机器上访问数据的协议或任何其它使用情况,务必要始终在标准的二进制数据表示(例如网络字节顺序,也称为大的在后)和 CPU 使用的格式之间进行转换。对于 16 位和 32 位值,AEE_htons() 和 AEE_htonl() 函数分别从本地格式转换成网络字节顺序。对于16和32位值,AEE_ntohs() 和 AEE_ntohl()分别从网络字节顺序转换成本地格式。
使用两个版本字节: 主版本号和次版本号。
如果主版本大于代码当前使用的版本,则将其当作致命错误(它源于代码的未来版本或数据已损坏)。如果主版本小于代码目前使用的版本,则是用户友好的,可以转换。一是对每个主版本值要有一个转换函数,它将转换为下一个值。然后,可以使用一个函数根据需要按顺序调用这些函数。因为此类转换会使您的代码更加复杂且更大,一些开发者更愿意将主版本的任何不匹配当作致命错误。
如果次版本不同,则代码可以只使用它知道的字段。如果此操作行不通,则需要更改主版本。
一般说来,最好在首选项和相关结构中分配一些额外空间以便将来使用,并且使其全部为零。如果您打算如此操作,则更容易实现向后兼容。在首选项中,您甚至可以保留一些虽未使用但已初始化为“1”的标记,以供将来要默认为“on”的选项使用。从而避免使用不美观的否定选项(如有“not”或“dont”的选项)。
阅读(200)
(责任编辑:城市网)