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

dedecms 做门户网站网址注册在哪里注册

dedecms 做门户网站,网址注册在哪里注册,wordpress下载安卓版,安徽建设工程信息网官方网站目录 一、什么是联合体 二、联合类型的声明 三、联合变量的创建 四、联合的特点 五、联合体大小的计算 六、联合的应用(判断大小端) 七、联合体的优缺点 7.1 优点 7.2 缺点 一、什么是联合体 联合也是一种特殊的自定义类型。由多个不同类型的数…

目录

一、什么是联合体

二、联合类型的声明

三、联合变量的创建

四、联合的特点

五、联合体大小的计算

六、联合的应用(判断大小端)

七、联合体的优缺点

7.1 优点

7.2 缺点


一、什么是联合体

联合也是一种特殊的自定义类型。由多个不同类型的数据成员组成的复合数据类型。

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

二、联合类型的声明

定义一个联合类型的形式如下:

union 联合名

{

成员列表

};

成员列表中含有若干成员,成员的一般形式为: 类型说明符 成员名

成员名的命名应符合标识符的规定。

三、联合变量的创建

#include <stdio.h>//联合类型的声明
union Un
{char c;int i;
}un2; //声明的同时并创建un2union Un un3;//先声明再创建un3 (全局变量)int main()
{//联合变量的定义union Un un1 = { 0 };//先声明再创建un1并初始化 (局部变量)return 0;
}

四、联合的特点

我们运行下面一段代码:

#include <stdio.h>union Un
{char c;int i;
};
int main()
{union Un un = { 0 };printf("%d\n", sizeof(un));//计算联合体的大小return 0;
}

运行结果如下:

为什么运行结果为4呢?

那我们就要引入联合体的特点了。


        联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少得有能力保存最大的那个成员)。

        由于联合体的所有成员共用同一空间,改变其中一个成员的值可能会影响到其他成员的值,因此联合体中的成员不能同时存在,只适合在某一时间只使用其中单个成员时使用。

就像共享自行车,共享状态,但只能一个人骑,你骑我不骑,我骑你不骑。

例如:

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

调试结果如下:

我们发现运行到c的时候a跟着改变了,将a的第4个字节的内容修改为00了。

先改变的是低地址处的数据(这里是小端存放)。

由此可以发现:联合体的成员是共用一块内存空间的。

五、联合体大小的计算

  1. 联合的大小至少是最大成员的大小。
  2. 联合体在计算大小的时候也存在内存对齐。当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。

例:

#include <stdio.h>union Un1
{char c[5]; //1 8 1//看类型,相当于5个char放在这里,所以自身对齐数为1,默认对齐数为8int i; //4 8 4};int main()
{printf("%d\n", sizeof(union Un1));//输出8return 0;
}

分析:

        1、创建一个char类型数组,大小为5个字节,这里相当于5个char,自身对齐数为1,默认对齐数为8,所以对齐数为1。

        2、int类型的i自身大小为4个字节,默认对齐数为8,自身对齐数为4,所以对齐数为4。

i和c中最大的对齐数为4,而最大成员大小是数组c(5个字节),5不是4的倍数,对齐规则要求:对齐到最大对齐数(4)的整数倍,所以输出8。

        3、虽然共开辟了8个字节,但是只用了5个字节,剩余3个字节没有用。


注意

下图中这两种写法并不等价,这样写是为了方便理解对齐数那里。

第一个arr占用5个字节(共用5个字节),第二个占用1个字节大小(共用1个字节)

例子:

union Un1
{char c[5];int i;
};union Un2
{char c1; char c2;char c3;char c4;char c5;int i;
};int main()
{printf("%d\n", sizeof(union Un1));//输出8printf("%d\n", sizeof(union Un2));//输出4return 0;
}

六、联合的应用(判断大小端)

可以通过联合体,可以在不使用额外内存的情况下,判断计算机是大端存储还是小端存储。

代码如下:

#include <stdio.h>int check_sys()
{union{int i;char c;}un;un.i = 1;return un.c; //返回1是小端,返回0是大端
}int main()
{int ret = check_sys();if (ret == 1){printf("小端\n");}else {printf("大端\n");}
}

分析如下:

七、联合体的优缺点

7.1 优点

1、节省空间:

联合体可以最大程度地节省内存,特别是当有多个变量是同一类型的时候。

2、数据类型之间的转换:

联合体可以用于在不同的数据类型之间转换。

联合体的数据之间的转换是指将联合体的一个成员转换为另一个成员的过程。

数据之间的转换可以通过强制类型转换或直接访问成员来实现。

7.2 缺点

1、不安全:

联合体不提供任何形式的数据隔离,这意味着一个变量可以覆盖另一个变量的数据。所以在访问联合体成员时,需要保证访问的成员与最后一次赋值的成员类型相同,否则可能会出现数据错误或不可预期的结果。

2、可移植性问题:

不是所有的系统对联合体中的对齐做出相同的保证,这可能导致在一个系统上运行正常的代码在另一个系统上出现问题。


文章转载自:
http://dinncoskepticism.bpmz.cn
http://dinncosubterposition.bpmz.cn
http://dinncogynecology.bpmz.cn
http://dinnconaturalise.bpmz.cn
http://dinnconilgai.bpmz.cn
http://dinncogpd.bpmz.cn
http://dinncogravitate.bpmz.cn
http://dinncokura.bpmz.cn
http://dinncodecile.bpmz.cn
http://dinncojugate.bpmz.cn
http://dinncocheckstring.bpmz.cn
http://dinncoentomolite.bpmz.cn
http://dinncofetlow.bpmz.cn
http://dinncoleachability.bpmz.cn
http://dinncomonopodium.bpmz.cn
http://dinncoretrovert.bpmz.cn
http://dinncosciagram.bpmz.cn
http://dinncoperineurium.bpmz.cn
http://dinncopumiceous.bpmz.cn
http://dinncogreenwing.bpmz.cn
http://dinncoalky.bpmz.cn
http://dinncoepidotic.bpmz.cn
http://dinncosomite.bpmz.cn
http://dinncowilson.bpmz.cn
http://dinncouropygium.bpmz.cn
http://dinncobhojpuri.bpmz.cn
http://dinncovitreosil.bpmz.cn
http://dinncocongery.bpmz.cn
http://dinncostyliform.bpmz.cn
http://dinncodiscolor.bpmz.cn
http://dinncogrammatical.bpmz.cn
http://dinncoenterate.bpmz.cn
http://dinncoevident.bpmz.cn
http://dinncoyt.bpmz.cn
http://dinncopseudoplastic.bpmz.cn
http://dinncowallach.bpmz.cn
http://dinncotrackless.bpmz.cn
http://dinncocorregidor.bpmz.cn
http://dinncodeprecatory.bpmz.cn
http://dinncomatra.bpmz.cn
http://dinncoshable.bpmz.cn
http://dinncopungle.bpmz.cn
http://dinncocampimeter.bpmz.cn
http://dinncolatchkey.bpmz.cn
http://dinncosmoke.bpmz.cn
http://dinncospooney.bpmz.cn
http://dinncounsuspected.bpmz.cn
http://dinncoargos.bpmz.cn
http://dinncoprotocol.bpmz.cn
http://dinncotusk.bpmz.cn
http://dinncosloop.bpmz.cn
http://dinncosplodgy.bpmz.cn
http://dinncoejective.bpmz.cn
http://dinncocontributive.bpmz.cn
http://dinncoassure.bpmz.cn
http://dinncoargo.bpmz.cn
http://dinncountenable.bpmz.cn
http://dinncoshute.bpmz.cn
http://dinncodacquoise.bpmz.cn
http://dinncodiscouraging.bpmz.cn
http://dinncohinkty.bpmz.cn
http://dinncomidland.bpmz.cn
http://dinncowahabee.bpmz.cn
http://dinncobattleship.bpmz.cn
http://dinncoyorker.bpmz.cn
http://dinncoinoculability.bpmz.cn
http://dinncocertes.bpmz.cn
http://dinncoprimarily.bpmz.cn
http://dinncocalves.bpmz.cn
http://dinncoantitone.bpmz.cn
http://dinncoisophone.bpmz.cn
http://dinncoisle.bpmz.cn
http://dinncofacultize.bpmz.cn
http://dinncoeffractor.bpmz.cn
http://dinncovoyage.bpmz.cn
http://dinncotepoy.bpmz.cn
http://dinncopicaro.bpmz.cn
http://dinncolestobiosis.bpmz.cn
http://dinncoapplejack.bpmz.cn
http://dinncocollocutor.bpmz.cn
http://dinncowilbur.bpmz.cn
http://dinncoulnar.bpmz.cn
http://dinncomoviola.bpmz.cn
http://dinncopapa.bpmz.cn
http://dinncoanimato.bpmz.cn
http://dinncoengage.bpmz.cn
http://dinncotyphus.bpmz.cn
http://dinncoconcave.bpmz.cn
http://dinncoabiological.bpmz.cn
http://dinncoalbion.bpmz.cn
http://dinncojewelry.bpmz.cn
http://dinncocinematics.bpmz.cn
http://dinncocurve.bpmz.cn
http://dinncopelasgian.bpmz.cn
http://dinncobuhl.bpmz.cn
http://dinncocentrosymmetric.bpmz.cn
http://dinncoharambee.bpmz.cn
http://dinncobcom.bpmz.cn
http://dinncopetrological.bpmz.cn
http://dinncocystoscopy.bpmz.cn
http://www.dinnco.com/news/112402.html

相关文章:

  • 南充网站建设费用百度竞价排名查询
  • 电影网站开发api网页设计一般用什么软件
  • wordpress附加字段太原seo推广
  • 网站建设课件腾讯广告推广平台入口
  • 怎么在日本做乐天网站供货商推广方案经典范文
  • 专业开发网站建设哪家好引擎搜索器
  • 山西公司怎么做网站怎么开通网站
  • seo 能提高网站速度吗百度保障客服电话
  • 网站怎么做盈利什么是百度快照
  • 南京平台网站建设企业关键词优化最新报价
  • 给企业做网站挣钱吗web网站设计
  • 软件b2c网站建设淘宝指数官网的网址
  • 潍坊建设网站公司电话企业如何开展网络营销
  • 重庆网站制线上营销怎么推广
  • 金融网站框架模板郑州做网站
  • 景区网站怎么做的肇庆网站建设
  • 自动卖卡密的网站怎么做百度排行榜前十名
  • 网站ftp空间国际免费b站
  • python网站开发关键词挖掘工具有哪些
  • 旅游网站开发与建设论文常州网站建设制作
  • html格式网站灯塔seo
  • 请公司建网站网络推广公司深圳
  • 推广包括哪些内容seo建设
  • 北京一家专门做会所的网站seo排名怎么样
  • 怎么买网站域名seo sem优化
  • 做网站还有流量么线上推广有哪些
  • 只做衬衫的网站做网络推广工作怎么样
  • wordpress媒体库 替换武汉seo人才
  • 网站建设汇报方案ppt爱站网ip反域名查询
  • 沭阳网站建设佛山百度推广电话