共用体
来源:互联网 发布:青牛软件怎么样 编辑:程序博客网 时间:2024/05/14 15:14
1.在C语言中,不同数据类型的数据可以使用共同的存储区域,这种数据构造类型称为共用体;
共用体在定义,说明和使用形式上与结构体相似;(本质的区别在于使用内存的方式上)
示例:
union gy
{
int i;
char c;
float f;
};
这三个成员在内存中使用共同的存储空间。由于共用体中各成员的数据长度往往不同,所以共用体变量在存储时总是按照成员中数据长度最大的成员占用内存空间。
结构体变量类型在存储时总是按照各成员的数据长度之和占用内存空间;
当多个数据需要共享内存或者多个数据每次只取其一时,可以用共用体
例如:定义一个结构体类型:
struct gy
{
int i;
char c;
float f;
}
结构体类型struct gy的变量占用的内存大小为2+1+4=7个字节(不考虑字节对齐);
举个例子:
#include <stido.h>
union gy
{
char a;
short b;
int c;
}
int main()
{
union gy t;
t.c=0x12345678;
printf("sizeof(union gy)=&d\n",sizeof(union gy));
printf("%p %p %p\n",&t,a,&t.b,&t.c);
printf("%#x %#x %#x\n",t.a,t.b,t.c);
return 0;
}
执行这段程序可以看到 sizeof(union gy )的值是4;各个成员的起始地址是相同的,这充分说明了联合体哥哥成员公用内存,而联合体占用的存储空间最大的成员为准
阅读全文
0 0
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- 共用体
- java设计模式-原型模式
- Linux进程地址空间 && 进程内存布局
- 菜鸡的Django学习笔记(三)完成一个博客
- Github使用指南
- 重定义容器排序方式
- 共用体
- java设计模式-策略模式
- 测试人员在敏捷测试中的关注点
- 经验积累2017-12-2
- 出栈的合法性检测
- 分答项目_知识点:阿里云免费申请https教程
- Sublime3的安装手册
- The fully qualified name of the bean's class, except if it serves only as a parent definition ...
- Tips: JQuery 多元素选择并转化成数组