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

如何建立营销性企业网站论文竞价托管外包服务

如何建立营销性企业网站论文,竞价托管外包服务,建设网站的优势,二级域名免费网站怎么申请引言 对枚举、联合体进行介绍,包括枚举的声明、枚举的优点,联合体的声明、联合体的大小。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 枚举 枚举…

引言

对枚举、联合体进行介绍,包括枚举的声明、枚举的优点,联合体的声明、联合体的大小。

 158c3f50b199454985017a51dbef9841.png               ✨ 猪巴戒:个人主页✨

               所属专栏:《C语言进阶》

        🎈跟着猪巴戒,一起学习C语言🎈

目录

引言

枚举

枚举的优点

联合(共用体)

 联合体的内存分布

如何通过联合体检验编译器的大小端?

联合体的大小

总结:


枚举

将事物一一列举出来,每个枚举常量都有一个取值。
下面就是枚举的具体格式,Mon,Tues,Wed这些就是枚举常量,每个枚举常量之间用逗号 隔开。枚举常量用大括号括在一起,记得结尾要有分号作为结尾。
枚举中的变量都是有初始值的,默认从0开始,后面就是递增1。下图将它们各自的值打出来。
enum Day
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};

181154d13d074a1aa5663c1fa71c98d6.png

枚举变量的取值也是可以直接定义的。 

enum Color//颜⾊
{RED=2,GREEN=4,BLUE=8
};

         

枚举的优点

通过定义宏,同样可以把各星期的取值打印出来。那枚举的优点是什么呢?

#define Mon 0
#define Tues 1
#define Wed 2
#define Thur 3
#define Fri 4
#define Sat 5
#define Sun 6

e77e0dd4e51545de9f95a1e0ce306adf.png

 枚举的优点

  1. 增加代码的可读性和可维护性
  2. 和#define定义的标识符比较枚举有类型检查,更加严谨
  3. 防止命名污染(封装)
  4. 便于调试
  5. 使用方便,一次可以定义多个常量

2.和#define定义的标识符比较枚举有类型检查,更加严谨

枚举变量都具有类型,转换的时候会更加严格。

enum Day d = Fri;
enum Day d = 5; //在C++的语法中会报错

3.防止命名污染(封装)

enum将各枚举变量封装起来。

4.便于调试

在#define在预处理阶段,define所定义的标识符就已经被替换了,调试所看到的代码和所写代码会有所差异。

而枚举中变量是不会替换的。

        

联合(共用体)

联合是一种特殊的自定义类型

这种类型定义的变量也包含一系列的成员,特征是这些成员共用同一块空间。

联合体的大小是联合体中成员的最大内存。

#include <stdio.h> 
union Un
{int a;char c;
};
int main()
{union Un u;printf("%d\n", sizeof(u));printf("%p\n", &u);printf("%p\n", &(u.a));printf("%p\n", &(u.c));return  0;
}

9f7935a6631144e9b12936c78433f045.png

         

 联合体的内存分布

联合体的成员共用同一块内存空间,因此联合体的大小至少是最大成员的大小。

联合体的特点:

1.联合体成员的地址是一样的

2.联合体的大小至少为最大成员的大小

联合体的成员内存是重叠的,因此联合体在同一时刻,只能使用一个联合体成员。

通过下面的例子,理解联合体的内存分布:

例子1:

#include <stdio.h>
union Un
{char c;int i;
};
int main()
{union Un un = { 0 };un.i = 0x11223344;un.c = 0x55;printf("%x\n", un.i);return 0;
}

 由于是小端操作系统,数据在内存在的储存为小端字节序。

绿色表示联合体成员 i 。

3631b3825226476e987571b294bd571f.png

联合体的成员的地址是一样的,但是所占的字节不同。 

红色表示的是联合体成员 c 。

4771f171f84b44ecb59dd6872d8352f2.png

653d83f74f2c4dbdb1a835e9c8ef986e.png

         

如何通过联合体检验编译器的大小端?

一个数据 a = 0x11223344 在大小端字节序的不同排列

  小端字节序储存:

  • 把一个数据的低位字节序的内容存放在低地址处,把高位字节序的内容放在高地址处,就是小端字节序。

812bea8e79d645b69c52c8b12a475145.png

 大端字节序储存:

  • 把一个数据的高位字节序的内容存放在低地址处,把低位字节序的内容放在高地址处,就是大端字节序。

int a =0x11 22 33 44(这里用十六进制是为了表达)

459382accd64463f90bbb7c26dea0bf3.png

代码: 

#include <stdio.h>
int check_sys()
{union Un{char c;int i;}u;u.i = 1;return u.c;
}
int main()
{int ret = check_sys();if (ret == 1)printf("小端\n");elseprintf("大端\n");return 0;
}

解释:

如果是小端字节序,i 在内存中是 01 00 00 00,这个时候将 c 拿出来,就是那联合体的第一个字节。如果是1,那么就是小端字节序。

e905c6db8a7e4cf0a4c2ae8150406b8d.png

 如果是大端字节序,i 在内存中是 00 00 00 01,这个时候将 c 拿出来,就是那联合体的第一个字节。如果是0,那么就是大端字节序。

be35a49cc8514aaab4012f8b493c3917.png         

联合体的大小

联合体的大小也存在对齐。

当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。

对⻬数 = 编译器默认的⼀个对⻬数 与 该成员变量⼤⼩的较⼩值。

- VS 中默认的值为 8

- Linux中 gcc 没有默认对⻬数,对⻬数就是成员⾃⾝的⼤⼩

 例子1:

下面的打印结果是什么?

#include <stdio.h>
union Un
{char arr[5];int i;
};
union Un2
{short c[7];int i;
};
int main()
{printf("%d\n", sizeof(union Un));printf("%d\n", sizeof(union Un2));return 0;
}

Un的最大成员是 i ,4个字节的大小,arr[5]的内存如下,联合体Un的大小要对齐,对齐到4的整数倍,因此联合体Un的大小为8个字节。

16f66c0ef39943baa4ce220bdacd6f2e.png

Un2的最大成员是 i, 4个字节的大小,short[7]的内存如下,联合体Un2的大小要对齐,对齐到4的整数倍,因此联合体Un2的大小为16个字节。

52ef3c2873e64986a287175847f8f36d.png

 1eee6f2a1a834830b199b633a2637e7f.png

总结:

  1. 枚举(将事物一一列举出来,每个枚举常量都有一个取值)
  2. 枚举的优点
  3. 联合体,联合体的内存分布 
  4. 联合体的大小

http://www.hkea.cn/news/773821/

相关文章:

  • php商城网站建设多少钱天津百度seo排名优化
  • 注册网站免费注册insseo关键词优化推广哪家好
  • 深圳房地产网站开发常见的网络营销工具有哪些
  • .net 网站管理系统湖南企业竞价优化首选
  • 南山区住房与建设局官方网站网络赚钱推广
  • wordpress mycred汉化seo引擎搜索入口
  • 在线教育网站用什么做百度搜索的优势
  • 甘肃省住房城乡建设厅网站首页智能建站模板
  • 智能科技网站模板下载地址百度学术论文查重
  • 网站要怎么做才能让360收录推广品牌的策划方案
  • 做网站前景营销课程培训视频
  • 青海做网站广告开户南京seo
  • wordpress写软文赚钱seo快速培训
  • 南宁网站建设接单陕西省人民政府
  • wordpress网站价格seo域名综合查询
  • 支付网站怎么做的网络自动推广软件
  • js做网站统计品牌关键词优化
  • 微信公众号管理平台官网谷歌seo建站
  • 鲜花购物网站源码企业网站营销的优缺点
  • 表白网站制作在线日照网站优化公司
  • 企业网站建设策划书 前言徐州关键词优化排名
  • 一级a做爰片视频网站全国新闻媒体发稿平台
  • 唐山网站建设哪家专业高德北斗导航
  • wordpress 地址 .html企业网站seo贵不贵
  • 提供网站制作公司哪家好网络软文范文
  • 做原型网站枣庄网络推广seo
  • 品牌网站开发设计外贸网站平台
  • 网站做留言板网站推广在线
  • 长春服务好的网络营销seo网站推广的主要目的
  • 搜索引擎优化和关键词竞价广告的区别宿州百度seo排名软件