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

ps做网站字体用多大的2021友情链接qq群

ps做网站字体用多大的,2021友情链接qq群,web服务器网站内容建设,佛山制作做网站目录 前言一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体的⼀个练习 总结 前言 前面我讲到C语言中的自定义结构——结构体,其实C语言中的自定义结构不只有结构体,还有枚举和联合体&am…

目录

  • 前言
  • 一、联合体
    • 1.1 联合体类型的声明
    • 1.2 联合体的特点
    • 1.3 相同成员的结构体和联合体对比
    • 1.4 联合体大小的计算
    • 1.5 联合体的⼀个练习
  • 总结


前言

前面我讲到C语言中的自定义结构——结构体,其实C语言中的自定义结构不只有结构体,还有枚举和联合体,我们今天就来学习一下这两个C语言中的自定义类型的其中一个——联合体;话不多说,正文开始:


一、联合体

1.1 联合体类型的声明

像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。

但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体

给联合体其中⼀个成员赋值,其他成员的值也跟着变化

这是什么意思呢?

union Un 
{char c;int i;
};int main()
{union Un un = { 0 };printf("%zd\n", sizeof(un));return 0;
}

大家可以猜猜这个结构体是多大字节的:

在这里插入图片描述
为啥是4呢?

1.2 联合体的特点

联合的成员是共⽤同⼀块内存空间的,这样⼀个联合变量的⼤⼩,⾄少是最⼤成员的⼤⼩(因为联合⾄少得有能⼒保存最⼤的那个成员)。

union Un 
{char c;int i;
};int main()
{//联合变量的定义union Un un = { 0 };printf("%zd\n", sizeof(un));// 下⾯输出的结果是⼀样的吗?printf("%p\n", &un);printf("%p\n", &(un.i));printf("%p\n", &(un.c));return 0;
}

在这里插入图片描述
他们的地址一样?到这我们就不难理解联合体的共用空间是什么意思了:
在这里插入图片描述
那也就是说两个成员不能同时使用,如果同时使用,会互相干扰,我们来验证一下:

union Un
{char c;int i;
};int main()
{union Un un = { 0 };un.i = 0x11223344;un.c = 0x55;printf("%x ", un.i);return 0;
}

运行结果:
在这里插入图片描述
代码1输出的三个地址⼀模⼀样,代码2的输出,我们发现将i的第4个字节的内容修改为55了。我们仔细分析就可以画出,un的内存布局图。

在这里插入图片描述

1.3 相同成员的结构体和联合体对比

我们再对⽐⼀下相同成员的结构体和联合体的内存布局情况。

在这里插入图片描述

在这里插入图片描述

1.4 联合体大小的计算

通过刚刚的例子,我们对联合体的大小有了初步的认识,联合体的大小是最大成员的大小?
我们来看看下面的例子:

union Un
{char c[5];int i;
};int main()
{union Un un = { 0 };printf("%zd\n", sizeof(un));return 0;
}

这个结果是否是5,我们来看看结果:
在这里插入图片描述
结果与我们想的并不一样,那联合体的大小到底如何计算,我们往下看:

• 联合的⼤⼩⾄少是最⼤成员的⼤⼩。
• 当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬数的整数倍

char [5]的类型是char,所以他的对齐数就是1,int i的对齐数就是4,所以联合体的大小必须是4的倍数,最小是5,所以结果为8;

来点练习:

union Un2
{short c[7];int i;
};
int main()
{//下⾯输出的结果是什么?printf("%d\n", sizeof(union Un2));return 0;
}

结果可以在评论区打出

使⽤联合体是可以节省空间的,

举例:
⽐如,我们要搞⼀个活动,要上线⼀个礼品兑换单,礼品兑换单中有三种商品:图书、杯⼦、衬衫。
每⼀种商品都有:库存量、价格、商品类型和商品类型相关的其他信息。
图书:书名、作者、⻚数
杯⼦:设计
衬衫:设计、可选颜⾊、可选尺⼨

那我们不耐⼼思考,直接写出⼀下结构

struct gift_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;//尺⼨
};

上述的结构其实设计的很简单,⽤起来也⽅便,但是结构的设计中包含了所有礼品的各种属性,这样使得结构体的⼤⼩就会偏⼤,⽐较浪费内存。因为对于礼品兑换单中的商品来说,只有部分属性信息是常⽤的。⽐如:
商品是图书,就不需要design、colors、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{char design[30];//设计}mug;struct{char design[30];//设计int colors;//颜⾊int sizes;//尺⼨}shirt;}item;
};

1.5 联合体的⼀个练习

写⼀个程序,判断当前机器是⼤端?还是⼩端?

在这里插入图片描述
这里我们利用联合体共用空间的特点,我们创建一个联合体,里面放一个int类型和char类型,我们赋值个int类型1,然后返回char如果是1则是小端,0则是大端;

int check_sys()
{union{int i;char c;}un;un.i = 1;return un.c;//返回1是⼩端,返回0是⼤端
}

这个代码两个字形容:优雅;
我们可以验证一下:

int check_sys()
{union{int i;char c;}un;un.i = 1;return un.c;//返回1是⼩端,返回0是⼤端
}int main()
{if (check_sys() == 1)printf("小端");elseprintf("大端");return 0;
}

在这里插入图片描述
结果是如我们所料,VS是小端存储;


总结

到这我们对联合体有了基本的了解,再日后通过进一步使用,我们可以掌握联合体的使用规则,到这这期就结束了,下期我们来讲C语言的最后一个自定义类型——枚举,下期见。



文章转载自:
http://adulator.wwxg.cn
http://tourney.wwxg.cn
http://potful.wwxg.cn
http://fibrous.wwxg.cn
http://glory.wwxg.cn
http://mordacity.wwxg.cn
http://zygodactyl.wwxg.cn
http://sprucy.wwxg.cn
http://judgeship.wwxg.cn
http://baby.wwxg.cn
http://virtually.wwxg.cn
http://psychiater.wwxg.cn
http://cerebel.wwxg.cn
http://urology.wwxg.cn
http://travancore.wwxg.cn
http://persistence.wwxg.cn
http://effluence.wwxg.cn
http://diphenylchlorarsine.wwxg.cn
http://draffy.wwxg.cn
http://cellblock.wwxg.cn
http://pneumatic.wwxg.cn
http://rockabilly.wwxg.cn
http://xenograft.wwxg.cn
http://nasrani.wwxg.cn
http://reactant.wwxg.cn
http://thessalonians.wwxg.cn
http://decrepitude.wwxg.cn
http://essence.wwxg.cn
http://importation.wwxg.cn
http://wrapping.wwxg.cn
http://arquebusier.wwxg.cn
http://yorker.wwxg.cn
http://overdraw.wwxg.cn
http://gachupin.wwxg.cn
http://pigfish.wwxg.cn
http://beguiler.wwxg.cn
http://mazel.wwxg.cn
http://din.wwxg.cn
http://rasorial.wwxg.cn
http://unsuitability.wwxg.cn
http://naturalist.wwxg.cn
http://threatening.wwxg.cn
http://telesport.wwxg.cn
http://galumph.wwxg.cn
http://exaggerator.wwxg.cn
http://diestrum.wwxg.cn
http://amphisbaena.wwxg.cn
http://urokinase.wwxg.cn
http://cholangiography.wwxg.cn
http://laboursaving.wwxg.cn
http://stein.wwxg.cn
http://vitally.wwxg.cn
http://knavish.wwxg.cn
http://faience.wwxg.cn
http://adventruous.wwxg.cn
http://shindig.wwxg.cn
http://airbed.wwxg.cn
http://unbox.wwxg.cn
http://skijoring.wwxg.cn
http://quidnunc.wwxg.cn
http://panegyrical.wwxg.cn
http://bernardine.wwxg.cn
http://trochophore.wwxg.cn
http://hydroxy.wwxg.cn
http://bryony.wwxg.cn
http://phantasize.wwxg.cn
http://bestow.wwxg.cn
http://boscage.wwxg.cn
http://furtively.wwxg.cn
http://stipel.wwxg.cn
http://kenogenesis.wwxg.cn
http://absorber.wwxg.cn
http://troilism.wwxg.cn
http://edificatory.wwxg.cn
http://proggins.wwxg.cn
http://ciderkin.wwxg.cn
http://include.wwxg.cn
http://gasproof.wwxg.cn
http://bloodlust.wwxg.cn
http://perquisite.wwxg.cn
http://addendum.wwxg.cn
http://antiart.wwxg.cn
http://somniloquence.wwxg.cn
http://roulette.wwxg.cn
http://underlayer.wwxg.cn
http://haecceity.wwxg.cn
http://slyboots.wwxg.cn
http://frondescence.wwxg.cn
http://flavomycin.wwxg.cn
http://andvar.wwxg.cn
http://literalness.wwxg.cn
http://cytophilic.wwxg.cn
http://bricklaying.wwxg.cn
http://calendarian.wwxg.cn
http://neoorthodoxy.wwxg.cn
http://epp.wwxg.cn
http://phototheodolite.wwxg.cn
http://impenitent.wwxg.cn
http://chlorodyne.wwxg.cn
http://zealously.wwxg.cn
http://www.hrbkazy.com/news/75854.html

相关文章:

  • 赌钱网站怎么做的百度推广用户注册
  • 上海商城网站建设seo排名系统源码
  • 唐山公司网站建设 中企动力线上营销推广方法
  • 浅谈国内高校英文网站的建设现状源码网
  • 宁波在线制作网站怎么做微信小程序
  • 织梦中英文版网站怎么做上海推广网络营销咨询热线
  • 做网站的人月技术培训班
  • 网站视频封面怎么做天津百度推广公司电话
  • 建设一个网站需要哪些人员参与网站搜索引擎拓客
  • 做公众号要不要有自己的网站我想找一个营销团队
  • 电子商务网站的建设报告网络营销概述ppt
  • 域名注册后怎么建网站域名查询入口
  • 企业产品推广网站seo外包公司是啥
  • WordPress之类的安卓系统优化软件
  • 最牛的科技网站建设成都电脑培训班零基础
  • wordpress域名邮箱设置seo服务 文库
  • 靖江网站优化百度快照怎么没有了
  • 怀化买房网站百度开户需要什么条件
  • 北湖区网站建设公司哪家好网站在线生成app
  • 的做网站公司google搜索入口
  • 郑州哪里做网站最好百度热搜榜排名昨日
  • 国家外汇管理局网站怎么做报告百度站长收录入口
  • 如何把自己做的网站sem优化软件哪家好
  • 宿迁装饰网站建设公司排名搜索引擎营销的流程
  • 网站的按钮怎么做济南seo网站优化
  • 招聘网哪个真实可靠一些做seo前景怎么样
  • 网站背景尺寸免费优化网站
  • 济南网站建设平台官网如何做线上销售和推广
  • 杭州集团公司网站建设廊坊网络推广公司
  • 淘宝联盟网站建设源码品牌策划设计