最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
浅谈C语言共用体和与结构体的区别
时间:2017-03-15 编辑:简简单单 来源:一聚教程网
共用体:
使用union 关键字
共用体内存长度是内部最长的数据类型的长度。
共用体的地址和内部各成员变量的地址都是同一个地址
结构体大小:
结构体内部的成员,大小等于最后一个成员的偏移量+最后一个成员大小+末尾的填充字节数。
结构体的偏移量:某一个成员的实际地址和结构体首地址之间的距离。
结构体字节对齐:每个成员相对于结构体首地址的偏移量都得是当前成员所占内存大小的整数倍,如果不是会在成员前面加填充字节。结构体的大小是内部最宽的成员的整数倍。
共用体
代码如下 | 复制代码 |
//gcc让不同类型的变量共享内存地址 ,同一时间只有一个成员有效 union data{ inta; charb; intc; }; intmain(){ union data data_1 = {1};//初始化时只填写一个值。(同一时间只有一个成员有效) data_1.b ='c' data_1.a = 10;//后赋值的才有效。前面的赋值被覆盖 //打印地址,发现指向同一个地址 printf("%p\n%p\n%p\n",&data_1.a,&data_1.a,&data_1.a); return0; } |
-
上一个: C#微信开发之启用开发者模式
-
下一个: c# 中文转拼音without CJK
相关文章
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10
- .NET使用YARP通过编码方式配置域名转发实现反向代理教程 10-10