关于扩展性设计的问题

本帖最后由 527639827 于 2011-02-16 15:24 编辑

各位大侠,请教一下:

现在我要把数据记录到一个存储器上,比如硬盘啊、U盘啥的,然后我将来可能读出来并依据一定的组织方式解析存储设备上的数据

比如我定义数据结构是这样的

struct test
{
    WORD32 a;
   WORD64 b【4】;
   BYTE c;
    BYTE d【10】;

    BYTE Reserved【100】;
}

考虑到当前设计的这个数据结构将来可以扩充,发生变化,

1、比如当初的a变量由于需要变成了WORD32 a【4】,相当于中间字段扩充,这样我用新的代码解析原来存储器上的数据,就完全不是我想要的东西。
2、另外一种变化是a变量由于需要变成了BYTE a【4】,虽然位置没有扩充,但是可能由于字节序的问题,同一个空间的字段解析出来不同的东西


请教各位大侠,这样的应该怎么设计才好呢?

肯定会预留一些空间出来以便将来扩充,只是希望设计好这个数据结果,保证将来扩充的时候顶多字段解析不了,不会出现覆盖或者解析错误的情况

作者: 527639827   发布时间: 2011-02-16

隔离变化:
struct test {
    struct data_a a;
    ...
}

需求变化时 struct data_a 结构自定义变化就好。

作者: linyunxian   发布时间: 2011-02-16



QUOTE:
隔离变化:
struct test {
    struct data_a a;
    ...
}

需求变化时 struct data_a 结构自定义变 ...
linyunxian 发表于 2011-02-16 18:12




    可是考虑到在存储设备上的字节布局,最终还是一个bit一个bit的啊

作者: 527639827   发布时间: 2011-02-16