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

成都网站排名优化建设企业网站

成都网站排名优化,建设企业网站,网页设计心德体会500字范文,交易链接大全文章目录 前言一、联合体联合体的声明联合体的特点联合体和结构体内存布局对比联合体的大小计算联合体的实际使用样例礼品兑换单判断当前机器是大端还是小端 二、枚举枚举的定义枚举类型的声明枚举类型的优点枚举类型的使用 总结 前言 关于自定义类型除了我们常用的结构体… 文章目录 前言一、联合体联合体的声明联合体的特点联合体和结构体内存布局对比联合体的大小计算联合体的实际使用样例礼品兑换单判断当前机器是大端还是小端 二、枚举枚举的定义枚举类型的声明枚举类型的优点枚举类型的使用 总结 前言 关于自定义类型除了我们常用的结构体其实还有联合与枚举也是属于自定义类型   我们也来学习一下吧 一、联合体 联合体的声明 联合体是一个或多个成员组成其中成员可以是不同类型并且所有成员共用同一块内存空间所以联合体也称为共用体。联合体声明的关键字是union //联合体类型的声明 union Un {// 1 4 5 吗char c; // 1int i; // 4 }; int main() {union Un un;// 联合体的定义sizeof(%zd\n,sizeof(un)); // 4return 0; }联合体的特点 联合体所有成员共用同一块内存空间一个联合体变量的大小至少是最大成员的大小编译器只为最大的成员分配足够大的空间给联合体其中一个成员赋值其他成员的值也会变化 我们不妨来两段代码来详细感受一下这个性质 // 代码一 union Un {char c;int i; };int main() {union Un un {0};// 下⾯输出的结果是⼀样的吗// 结果001AF85C// 001AF85C// 001AF85Cprintf(%p\n, (un.i));printf(%p\n, (un.c));printf(%p\n, un);return 0; }// 代码二 union Un {char c;int i; };int main() {union Un un {0};un.i 0x11223344;un.c 0x55;// 结果:11223355printf(%x\n, un.i);return 0; }如果用一幅图来说明那就是如下 从代码一输出的结果是相同的说明联合体中成员变量是一块空间存储 从代码二输出中第四个字节的内容被修改位55对联合体中成员赋值会影响联合体的全部成员char类型只占用一个字节 还记得前面的内容不请在十秒内说出这是小端存储还是大端存储 答案是小端 联合体和结构体内存布局对比 我们再来比较一下同样成员变量情况下两种结合方式的区别来加深印象 struct Su {char c;int i; }S;Union Un {char c;int i; }un;结构体是通过以为空间换取时间设计而联合体是节省空间 联合体的大小计算 联合体的大小至少是最大成员的大小当最大成员大小联合体总大小要对齐到最大对齐数的整数倍 请注意很多学习资料都说联合体的大小就是最大成员的大小其实这是不对的 事实上联合体也是有内存对齐的下面我们就来举例说明 #include stdio.hunion Un1 {char c[5]; int i; }; // 最大对齐数位4最大成员大小为5对齐到8是最大对齐数的整数倍union Un2 {short c[7];int i; }; // 最大对齐数位4最大成员大小为7对齐到16是最大对齐数的整数倍int main() {printf(%zd\n, sizeof(union Un1)); // 8printf(%zd\n, sizeof(union Un2)); // 16return 0; }联合体的实际使用样例 礼品兑换单 事实上你可以观察下这种做法把公共属性单独写出来剩余属于各种商品本身的属性使用联合体处理其实是在一定程度上节省了内存 struct gift_list {int stock_number; // 库存量double price; // 定价int item_type; // 商品类型// 甚至还使用了匿名结构体、联合体union{struct{char title[20]; // 书名char author[20]; // 作者int num_pages; // ⻚数}book;struct{char design[30]; // 设计}mug;struct{char design[30]; // 设计int colors; // 颜⾊int sizes; // 尺⼨}shirt;}item; };判断当前机器是大端还是小端 这算是一个巧思很妙因为联合体公用一个空间相当于我是把一个int变量的第一个字节的数据单独提取出来如果最后返回的是1那说明低字节位放数据低位事实也确实是这样也就说明小端是答案 union un {char c;int i; };bool check_sys() {union un u;u.i 0x00000001;return u.c; }int main() {if (check_sys()){printf(小端\n); // YES}else printf(大端\n);return 0; }二、枚举 枚举的定义 枚举顾名思义就是一一列举而列举可能的取值是用于定义一组具有离散值的常量使数据更简洁、方便使用关枚举的关键字enum 枚举类型的声明 enum Day {Mon,Tues,Wed,Thur,Fri,Sat,Sun };enum Sex {Man,Woman; }以上定义的enum Day、enum Sex都是枚举类型而{ }中枚举类型的可能取值称为枚举常量 枚举类型的优点 我么可以用宏来定义常量那么这里为什么还要单独设立一种数据类型呢 增加代码的可读性和可维护性枚举类型有类型检查更加严谨便于调试预处理阶段会删除#define定义的符号一次可以定义多个枚举常量使用方便枚举常量是遵循作用域规则的枚举声明在函数内只能在函数内使用 枚举类型的使用 enum Color {Red2,Blue1 }enum Color clr Blue;enum Color clr 2 这种写法可以么毕竟2也是Red的值应该支持隐式类型转换吧 嗯…最好不要C语言可以Cpp不行Cpp检查比较严格 那有没有具体一点的应用场景呢 有我们稍微回顾一下之前的扫雷 运用了枚举这个技巧后 关于枚举其实我们后来还会有很多的应用场景这就需要大家自己去慢慢发现了 总结 其实中途跳过去写Cpp了现在再跳回来…   反复横跳
http://www.w-s-a.com/news/895270/

相关文章:

  • 百川网站企业做网站要注意哪些
  • 球迷类的网站如何做网站建设需要哪些素材
  • 请问有重庆有做网站吗电子政务系统网站建设的基本过程
  • 建设银行管方网站官网最新版cmsv6
  • 网站开发工程师需要会写什么深圳网站(建设信科网络)
  • 台州网站搭建网站建设需求计划
  • 网站app免费下载软件大全大连百度推广哪家好
  • 网站建设的面试要求iis做的网站手机怎么访问
  • 定州市住房保障和城乡建设局网站上海网站建设排行
  • 网站发帖百度收录网站改版后不收录
  • 昆明建设局网站号码网站开发 浏览器兼容性
  • 湖北专业网站建设大全室内设计联盟app下载
  • 网站建设的意义和作用江苏城市建设档案馆网站
  • 华为云速建站贴心的广州网站建设
  • 网页网站开发公司天津seo推广
  • 网站线框图用什么做共享门店新增礼品卡兑换模式
  • 互联网建站是什么seo服务公司上海
  • 象山县城乡建设局网站做网站客户要求分期
  • 什么是网络营销型网站手机网站 图标
  • 全国新农村建设网站外包和劳务派遣哪个好
  • 网站权限控制什么软件做网站描述
  • 建网络商城网站wordpress关于
  • 专业网站建设分类标准重庆网站开发哪家专业
  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站