从品牌网站建设到网络营销策划,从策略到执行的一站式服务
1)。数据成员对齐规则:结构(或联合)的数据成员。第一个数据成员放置在偏移量为0的位置。之后,每个数据成员存储的起始位置从该成员大小或其子成员大小的整数倍开始(只要该成员有子成员,如数组、结构等)(例如,在32位计算机中int为4字节,则应从4的整数倍地址开始存储)。基本类型不包括struct/class/Uinon。
创新互联建站专注于兴宁企业网站建设,响应式网站建设,商城系统网站开发。兴宁网站建设公司,为兴宁等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务2).structasmember:如果一个结构中有一些结构成员,那么应该从结构中“最宽的基本类型成员”的整数倍地址存储结构成员。(结构a包含结构B,而B包含char、int、double和其他元素,那么B应该从8的整数倍存储。)。
3).收尾工作:结构的总尺寸,即sizeof的结果,必须是结构内部大构件的“最宽基本型构件”的整数倍。弥补不足。(基本类型不包括struct/class/Uinon)。
4).sizeof(Union),结构中大的元素是Union的大小,因为在特定时间,只有Union的一个成员实际存储在地址中。
内存对齐的规则?为了加快计算机的访问速度,编译器在默认情况下对内存进行字节对齐。结构(包括类)字节对齐的原则如下:
1)结构变量的第一个地址可以除以其最宽的基本类型成员的大小;
2)结构的每个成员相对于结构的第一个地址的偏移量是成员大小的整数倍。如果需要,编译器将在成员之间添加内部加法;
3)结构的总大小是结构最宽基本类型成员大小的整数倍。如果需要,编译器将在最后一个成员之后添加尾随填充。Structsbyte1{double//offset0~7charj//offset8inta//offset12~15,因为9不能被4除,所以填写9~11}sizeof(sbyte1)//=16structsbyte2{charj//offset0double//offset8~15,因为1不能被8除,所以填写1~7inta//offset16~19}sizeof(sbyte2)//=24,为了得到8的倍数,请填写20~23
1对于32位处理器,也就是说,CPU一次从内存中读取4字节的数据。2边对齐意味着对于存储一定长度的M字节数据,存储地址应该是M字节的整数倍,结构的总体大小是大成员长度的整数倍。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图