当前位置: 首页 > news >正文

网站解决方案模板佛山学校网站建设

网站解决方案模板,佛山学校网站建设,网站建设技术支持方案,低价网站建设推广优化目录 结构体 匿名结构体 结构体嵌套 结构体大小 设置默认对齐数 位段 位段的跨平台问题 Enum枚举 枚举的好处 union联合体 判断大小端 内存大小 结构体 前面我们讲了结构体的基本知识#xff0c;还有一些知识并没有罗列完全#xff0c;这篇将结构体剩余的一些小知…目录 结构体 匿名结构体 结构体嵌套 结构体大小 设置默认对齐数 位段 位段的跨平台问题 Enum枚举 枚举的好处 union联合体 判断大小端 内存大小 结构体 前面我们讲了结构体的基本知识还有一些知识并没有罗列完全这篇将结构体剩余的一些小知识铺垫出来。 匿名结构体 struct {char book_name[20];char author[20];int price;char id[15]; }sb1, sb2;//匿名结构体类型 像这样的结构体称为匿名结构体注意匿名结构体变量必须在结构体声明尾部创建。  注意匿名结构体的生命周期只有声明这一行且不同匿名结构体的类型都是不同的。 可以看到即使内部有相同类型也无法被编译器识别且脱离结构体定义匿名结构体也是非法的。  结构体嵌套 结构体里能否嵌套一个结构体呢答案是可以的不过要注意不能自己嵌套自己。 struct Node {int data;struct Node n; }; sizeof(Node);//能否计算结构体大小呢 正确做法是用一个指针去接收结构体的地址这种结构就是我们数据结构中链表的结构。 struct Node {int data;struct Node* next; }; 结构体大小 先来用sizeof计算不同结构体大小 为什么类型相同的结构体大小不一样呢 这里我们用到一个函数叫做offsetoff来计算结构体成员偏移量。 stddef.h  偏移规则 第一个成员对齐到起始位置为0的偏移处后续成员偏移量必须为某个对齐数的整数倍处。对齐数自身大小与默认对齐数的较小值(vs默认对齐数为8LInux下不设默认对齐数结构体自身大小为对齐数结构体内存大小必须为最大对齐数的整数倍嵌套的结构体应对齐到自身最大对齐数的整数倍处该结构体的最大对齐数也就是作为成员的一个对齐数。 这种对齐方式使得在访问结构体时更加高效是一种空间换时间的做法。我们创建结构体的时候也可以考虑按占用空间数将成员从小到大排列。 设置默认对齐数 我们可以使用这条指令来修改默认对齐数 #pragma pack()  #pragma pack(2) struct S1 {char c1;//2int i;//4char c2;//2 };//8struct S2 {char c1;//1char c2;//1int i;//4 };//6 位段 位段——就是二进制位位段的成员可以是整形家族的任意成员(包括char)位段的空间按照int(4字节),char(1字节)开辟的避免将int和char混用位段是不跨平台的注意可移植性的程序应避免使用位段 struct A {int _a : 2;int _b : 5;int _c : 10;int _d : 30; }; struct B {char _a : 3;char _b : 4;char _c : 5;char _d : 4; }; 我们可以在结构体中用 指定该数据所占的比特位,大大减少了对空间的利用。 位段的跨平台问题 1.int位段被当成有符号数或无符号数是不确定的。 2.当开辟的空间大于剩余空间int or char时是利用还是舍去剩余空间是不确定的。 3.位段中空间bit是从左向右利用或从右向左利用是不确定的 4. 位段中最大位的数目不能确定。16位机器最大1632位机器最大32写成27在16位机 器会出问题。 Enum枚举 列举出可能的取值这些可能取值为一个枚举常量默认从0开始依次递增1 //声明枚举类型 enum color {BLACK 10,PINK, //11BLUE, //12YELLOW //13 }; enum color a BLACK;//初始化枚举变量int num BLACK;//可当作常量使用枚举的好处 增加代码的可读性和可维护性和#define定义的标识符比较枚举有类型检查更加严谨。防止了命名污染封装便于调试使用方便一次可以定义多个常量 union联合体 联合体是一种特殊的自定义类型它所包含的成员变量共用一块地址空间。 判断大小端 int check_sys() {union location{char i;int n;}u;u.n 1;//01000000return u.i;//01 } int main() {if(check_sys() 1)printf(小端\n);elseprintf(大端\n); } 内存大小 联合体的内存大小至少为最大成员变量所占空间大小这点很好理解共用一块空间必须满足最大成员变量的空间大小。除此之外它也遵守结构体大小为成员中最大对齐数的整数倍的规则。 例  单个char所占1个字节而int为4个字节成员变量最大的是arr占5个字节所以整个结构体的大小应为最大对齐数int的整数倍也就是8。
http://www.pierceye.com/news/783332/

相关文章:

  • 网站备案如何查询在wordpress教程
  • 新准则中公司网站建设费用计入什么科目360网页入口
  • 公司要网站建设thinkphp商城源码
  • 网站的定义tomcat做公司网站
  • 小程序开发公司网站源码下载阿里云搭建公司网站
  • 网站营销方案设计公司凡科可以做视频网站吗
  • 网站seo优化费用wordpress 做商城
  • 宁波网站设计哪家公司好电子商务电商网站设计
  • 网站添加提醒租网站需要多少钱
  • 网站关键字优化地点如何用手机做网站吗
  • 中国建设银行网站签名通下载站长工具seo词语排名
  • 七牛云官网登录郑州优化网站收费标准
  • 三亚专业网站建设电商网站开发思路
  • app手机端电子商务网站功能提供网站建设课程
  • 福田皇岗社区做网站公司办公室布局效果图
  • 音乐播放网站怎么做北京终端区优化
  • 广州市建设工程交易中心网站上海畔游网络科技有限公司
  • wordpress网站好慢页面模板怎么用
  • 网站建设维护是啥意思wordpress 路径
  • 汕头网站建设报价个体工商户注册公司流程和费用
  • 网站开发学的啥36kr源码WordPress
  • 最好的免费网站空间沈阳营销型网站
  • 如何制作一个好网站网络设计报告范例
  • 邯郸做网站最好的公司彩票网站制作
  • 酒店团购的网站建设网站建设的一些原理
  • 做淘宝网站需要什么网站设置快捷键
  • 网站建设合同验收提供网站建设报
  • 湛江市建设规划局网站如何干电商
  • 东莞网站制作很好 乐云践新佛山网站建设解决方案
  • 哪个网站百度收录快海报模板网址