栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

结构体的定义注意事项-修改程序有感

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

结构体的定义注意事项-修改程序有感

1.在接口传递参数的时候经常会定义一些结构体,进行数据传递

2.在文件存储的时候也经常定义一些结构体,对结构体初始化后进行保存

后面因为系统升级,可能需要修改传递的参数,但是为了维护系统兼容这个时候就很棘手了

所以我们在定义结构体的时候首先就要考虑修改兼容的问题

我们定义结构体的时候一定要定义一个长度,一个版本

struct Name

{

一个长度

一个版本

数据体

}

虽然下面这样的定义是 大小也是固定的,但是在不同的编译环境下(不同的编译器,不同版本的编译器都会造成大小不一致或者类型无法解析,主要是CString或者map这类数据各个编译器实现的不一致造成的)

struct Name

{

int nSize;

int nVer;

CString strName

std::vector values;

}

所以对于需要多个模块公用的结构体 我们最好都是基础类型的 如果有变长的数据可以定义成指针,将数据放到指针指向的缓冲区

struct Header

{

int nSize;

int nVer;

char szName[8];

int nAge;

int nBufSize;//说明p指向缓冲的大小

void* p;//指向缓冲 这里存可变的数据

}

这个带结构体大小和版本的结构体能更好的处理兼容问题和存储问题,

1.存储文件还是要定义好文件的格式,扩展兼容等问题是需要处理的 dlis这样的格式就算一种比较不错的格式

2.不管是网络协议还是文件协议都是为了交互数据的 所以他们定义协议的时候情况差不多

二 位定义的结构体,也是很方便对于位的操作

struct bitset

{   

int a:8;   

int b:2;   

int c:6;

} ;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928187.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号