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

一家公司做网站需要什么资料超级优化大师

一家公司做网站需要什么资料,超级优化大师,慈溪网站建设公司,东莞网站建设要注意什么个人主页点这里~ 联合和枚举 一、联合体1、联合体类型的声明2、联合体成员的特点3、与结构体对比4、计算联合体大小 二、枚举1、枚举的声明2、枚举的优点3、枚举类型的使用 一、联合体 1、联合体类型的声明 联合体的定义与结构体相似,但是联合体往往会节省更多的空…

在这里插入图片描述
个人主页点这里~


联合和枚举

  • 一、联合体
    • 1、联合体类型的声明
    • 2、联合体成员的特点
    • 3、与结构体对比
    • 4、计算联合体大小
  • 二、枚举
    • 1、枚举的声明
    • 2、枚举的优点
    • 3、枚举类型的使用

一、联合体

1、联合体类型的声明

联合体的定义与结构体相似,但是联合体往往会节省更多的空间,它的特点是所有成员共用一块内存空间,结构体也叫共用体
联合体中给某一成员赋值,其他成员值往往会跟着变化

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

定义联合体我们用的是union,定义格式与结构体相差不多,大括号里边是成员变量
输出结果:
在这里插入图片描述
按照结构体的标准来说,这里应该是8,但为什么会是4呢?
就是因为前边提到的:联合体的成员共用一块内存空间

2、联合体成员的特点

联合变量的大小至少是最大成员变量的大小

#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);printf("%p\n", &(un.i));printf("%p\n", &(un.c));printf("%p\n", &un);return 0;
}

在这里插入图片描述
我们发现第一行输出11223344被修改成了11223355
第二行联合体地址,联合体成员地址都是一个地址
所以我们验证了联合体成员变量共用一块内存
在这里插入图片描述

3、与结构体对比

struct Un
{char c;int i;
};
union Un
{char c;int i;
};

在这里插入图片描述
结构体内存中,灰色的是浪费掉的内存

4、计算联合体大小

联合体的大小至少是最大成员的大小
当最大成员大小不是最大对齐数的整数倍时,要对齐到最大对齐数的整数倍

#include <stdio.h>
union Un1
{char c[5];//1int i;//4
};
//当成员中有数组时,用其数组中每个数据的数据类型来比较最大对齐数
//4为最大对齐数,最大数为5,对齐到4的整数倍,即为8
union Un2
{short c[7];//2int i;//4
};
//4为最大对齐数,最大数为14,对齐到4的整数倍,即为16
int main()
{printf("%d\n", sizeof(union Un1));printf("%d\n", sizeof(union Un2));return 0;
}

在这里插入图片描述
我们在采购物品时(图书,杯子,笔记本,衣服),可以写一个结构来录入它们的信息

struct list
{//公共属性int stock_number;//库存量double price; //定价int item_type;//商品类型//特殊属性char title[20];//书名char author[20];//作者int num_pages;//⻚数char design[30];//设计int colors;//颜⾊int sizes;//尺⼨
};

我们用结构可以很快的写出来,但是这样会占用一些不必要的内存,例如图书没必要录入它的颜色,设计等属性,杯子也没有书名和作者,这样,我们的联合就可以发挥它的作用,在一定程度上节省内存

struct gift_list
{int stock_number;//库存量double price; //定价int item_type;//商品类型union {struct{char title[20];//书名char author[20];//作者int num_pages;//⻚数}book;struct{int colors;//颜色int sizes;//尺寸char design[30];//设计}cup;struct{char design[30];//设计int colors;//颜⾊int sizes;//尺⼨}clothes;struct{int num_pages;//页数int sizes;//尺寸}notebook;}item;
};

二、枚举

1、枚举的声明

枚举就是一一列举的意思,枚举用enum来定义,定义方法也是类似结构体与联合体的方式

enum Day//星期
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};

enum Day就是枚举类型,大括号中的内容为枚举类型的可能取值,也叫枚举常量,这些枚举常量都是有值的,默认从0开始,依次递增1,也可以赋初始值

enum Day
{Mon,Tues,Wed,Thur=2,Fri,Sat,Sun
};

从上到下值依次为0 1 2 2 3 4 5
中间赋值,前面从头开始为0,依次递增1,到该枚举常量时,取被赋予的值,然后往下还是依次递增1

enum Day
{Mon=4,Tues,Wed,Thur,Fri,Sat,Sun
};

从上到下值依次为4 5 6 7 8 9 10
依次递增1

2、枚举的优点

我们知道#define也可以完成枚举这样的效果,那为什么我们还要使用枚举呢?
①增强代码的可读与可维护性
②和#define相比枚举有类型检查,更加安全严谨
③便于调试,在预处理阶段,会删除#define定义的符号,直接用所替换的值替换,导致预处理与真实代码不统一,无法更好地调试
④使用方便,一次可以定义多个常量
⑤枚举遵循作用域规则,枚举声明在函数内,只能在函数内使用

3、枚举类型的使用

enum Day
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};
enum Day today = Mon;

使用枚举常量为枚举变量赋值,在C语言中可以用整数来给枚举变量赋值,但在C++中不可以


今日分享就到这里了~

在这里插入图片描述

http://www.dinnco.com/news/4841.html

相关文章:

  • 一个电商网站开发要多久佛山网站建设正规公司
  • 做图网站有哪些东西宣传软文是什么
  • 盛世阳光-网站建设标题优化怎么做
  • 以企业介绍为主做外贸网站好吗常用的网络营销平台有哪些
  • 动漫设计就业率高吗广东seo推广方案
  • 2网站建设网站推广应该怎么做?
  • 湖口县建站公司百度app免费下载安装最新版
  • 网站开发黄色片苏州网站建设费用
  • Dw怎么做网站往里面加标题和字服务营销包括哪些内容
  • 内蒙古城乡建设厅网站资质公告广告网站大全
  • 个人网站有哪些网站网络推广是什么工作
  • 未成年人做网站小广告设计
  • 企业建设网站公司名称大全深圳网站制作设计
  • 知名企业文化案例东莞seo技术培训
  • 开发国外优惠卷网站如何做seo在线优化
  • 济南网站建设用途百度seo关键词优化方案
  • 个人作品集网站是怎么做seo在线外链
  • 沧县做网站价格seo主要优化哪些
  • 淘宝网网站建设nba最新新闻新浪
  • 做婚宴的网站有哪些网站流量统计平台
  • 邯郸网站建设行情引擎seo如何优化
  • 关键词做网站名字湛江seo
  • 嘉定网站建设网页制作定制网站制作公司
  • 网站建设问题调查百度站长工具是什么意思
  • 门户网站直接登录系统网站制作工具
  • 什么网站可以做时间加减谷歌seo搜索引擎优化
  • 百度网盟推广有哪些网站信息推广的方式有哪些
  • 免费简单网站中国营销型网站有哪些
  • 建ic网站国内最新的新闻
  • 推广网站wap端怎么做营销推广活动策划方案大全