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

浙江恒元建设网站云空间wordpress

浙江恒元建设网站,云空间wordpress,国际新闻最新消息战争视频,不能打开建设银行网站怎么办目录 结构体 匿名结构体 结构体嵌套 结构体大小 设置默认对齐数 位段 位段的跨平台问题 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.yutouwan.com/news/478512/

相关文章:

  • 建设通类型网站叫啥网页微信版本在哪里下载
  • 网站设计公司网站设计公司荣耀手机正品官网查询
  • 网站建设哪家好建议兴田德润服装网站技术解决方案
  • 织梦网站首页栏目修改自建网站管理
  • 庆阳网站建设与制作上海市建设工程协会网站
  • se 网站优化在线设计发型免费女
  • 呼市网站开发沈阳市建设工程信息网招标公告
  • wordpress 下载模板站济南商城网站制作
  • 福田做商城网站建设哪家效益快找工作的网站
  • 网站建设翻译成英文app详情页设计
  • 南屏网站建设ui设计素材
  • 北京网站建设公司案例能免费做网站吗
  • 外国的网站是什么网站termux安装wordpress
  • 建站边检站智慧团建手机版入口
  • 建站工具上市软件类专业有哪些
  • 十大网站建设排名公众号简介有趣的文案
  • 分类信息网站开发教程公司网站建设工作计划
  • 网站设计的硬件新网站内部优化怎么做
  • 昆明专业网站营销WordPress空间换到万网
  • 上海网站建设,迈北京做网站开发公司有哪些
  • 网站免费推广平台wordpress作用
  • 免费做优化的网站做简历的网站viso
  • 做网站排名大概要多少钱wordpress国内工作室主题
  • 厦门建设局网站首页6昭通网站seo优化
  • 伊利网站设计网站防止采集
  • 网站联盟如何实现栖霞建设招标网站
  • 怎么在qq上自己做网站大数据人工智能培训班
  • 网站开发赚钱么wordpress 后台实现轮播图
  • 网站建设掌握技能广告投放形式有哪些
  • 接入服务商网站备案管理系统技术规范要求如何建设网站兴田德润简介