免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2826 | 回复: 3
打印 上一主题 下一主题

关于扩展性设计的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-16 15:22 |只看该作者 |倒序浏览
本帖最后由 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】,虽然位置没有扩充,但是可能由于字节序的问题,同一个空间的字段解析出来不同的东西


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

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

论坛徽章:
0
2 [报告]
发表于 2011-02-16 18:12 |只看该作者
隔离变化:
struct test {
    struct data_a a;
    ...
}

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

论坛徽章:
0
3 [报告]
发表于 2011-02-16 18:22 |只看该作者
隔离变化:
struct test {
    struct data_a a;
    ...
}

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



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

论坛徽章:
0
4 [报告]
发表于 2011-02-16 23:41 |只看该作者
可是考虑到在存储设备上的字节布局,最终还是一个bit一个bit的啊
527639827 发表于 2011-02-16 18:22



    如果是字节序的问题,那就直接用htonl之类的接口访问数据了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP