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

app和网站开发语言的区别制作动作游戏吧中文

app和网站开发语言的区别,制作动作游戏吧中文,江门网站设计制作,办文明网站做文明网民活动方案文章目录 前言一、联合体联合体的声明联合体的特点联合体和结构体内存布局对比联合体的大小计算联合体的实际使用样例礼品兑换单判断当前机器是大端还是小端 二、枚举枚举的定义枚举类型的声明枚举类型的优点枚举类型的使用 总结 前言 关于自定义类型除了我们常用的结构体… 文章目录 前言一、联合体联合体的声明联合体的特点联合体和结构体内存布局对比联合体的大小计算联合体的实际使用样例礼品兑换单判断当前机器是大端还是小端 二、枚举枚举的定义枚举类型的声明枚举类型的优点枚举类型的使用 总结 前言 关于自定义类型除了我们常用的结构体其实还有联合与枚举也是属于自定义类型   我们也来学习一下吧 一、联合体 联合体的声明 联合体是一个或多个成员组成其中成员可以是不同类型并且所有成员共用同一块内存空间所以联合体也称为共用体。联合体声明的关键字是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.hkea.cn/news/14369700/

相关文章:

  • 云存储做网站千图网免费海报素材图库
  • 五莲网站设计推广业务
  • 做网站需要接口么福州做网站开发需要多少钱
  • 个人介绍微电影网站模板免费下载阿里云服务器在哪里放着
  • c 网站开发调试网站焦点图设计
  • 建网站的基本流程功能性的网站设计制作
  • 呼和浩特可以做网站的公司网站描述怎么修改吗
  • 东莞市住房和城乡建设局网站wordpress示例
  • 无锡网站怎么推广效果好简单网站建设培训中心
  • 网站建设与seo论文郑州做网页的公司
  • 电子商务网站设计与建设企业微网站案例
  • 藁城专业网站建设邵阳竞价网站建设设计
  • 做app网站的软件叫什么名字网站的差异
  • thinkphp大型网站开发建设工程企业资质工作网站
  • 上上海海网网站站建设中国建设银行网站客户注册码
  • 北滘网站建设公司建站公司网站
  • 网站建设如何运营江苏建设准考证打印在哪个网站
  • 外贸网站增加权重微信网站开发需要什么技术
  • 新余 网站建设住房和城乡建设部证书
  • 网站策划建设做网站需要多少钱济宁
  • 餐饮加盟手机网站建设网站的配色方案
  • 站长之家官网入口利用ps做兼职的网站
  • 表格比较多得网站这么做响应式广告公司名称怎么取好
  • mvc4做网站五有网站可以接设计的单子做吗
  • 免备案空间网站备案wordpress翻译
  • 如何自己建网站服务器外贸营销型建站
  • iis7.5添加php网站优化网站排名推广
  • 公司的网站难不难做长沙seo培训
  • wordpress公园北京网站优化推广收集
  • 咸阳个人兼职网站建设旅游扁平化设计网站模板