union类型与struct类型类似,只是所有字段共享相同的内存位置。union的大小是它包含的最大字段的大小。下面的代码中创建一个联合体类型,大小为4个字节。
编程学习网为您整理以下代码实例,主要实现:联合体是什么?,希望可以帮到各位朋友。
union类型与struct类型类似,只是所有字段共享相同的内存位置。union的大小是它包含的最大字段的大小。
下面的代码中创建一个联合体类型,大小为4个字节。
union mix {
char c; /* 1 byte */
short s; /* 2 bytes */
int i; /* 4 bytes */
};
由于内存是共享的,因此union类型一次只能存储一个值。更改一个字段将覆盖其他字段的值。
#include <stdio.h>
union mix {
char c; /* 1 byte */
short s; /* 2 bytes */
int i; /* 4 bytes */
};
int main(voID) {
union mix m;
printf("%d\n",m.c);
printf("%d\n",m.s);
m.c = 0xFF; /* set first 8 bits */
printf("%d\n",m.c);
printf("%d\n",m.s);
m.s = 0; /* reset first 16 bits */
printf("%d\n",m.c);
printf("%d\n",m.s);
}
union提供了多种使用相同内存位置的方法。
示例代码 :
#include <stdio.h>
union mix {//
char c[4]; /* 4 bytes */
struct { short hi, lo; } s; /* 4 bytes */
int i; /* 4 bytes */
} m;
int main(voID) {
union mix m;
m.i=0xFF00F00F; //11111111 00000000 11110000 00001111
m.s.lo; //11111111 00000000
m.s.hi; // 11110000 00001111
m.c[3]; //11111111
m.c[2]; // 00000000
m.c[1]; // 11110000
m.c[0]; // 00001111
printf("%d\n",m.i);
printf("%d\n",m.s.lo);
}
沃梦达教程
本文标题为:联合体是什么?
基础教程推荐
猜你喜欢
- 用指数格式表示浮点数 1970-01-01
- 总计将在节日礼物上花多少钱 1970-01-01
- 明确指定任何或所有枚举数的整数值 1970-01-01
- C语言数组 1970-01-01
- C++多态 1970-01-01
- 对 STL 容器的安全并行只读访问 2022-10-25
- C语言3个整数的数组 1970-01-01
- 迭代std :: bitset中真实位的有效方法? 2022-10-18
- C++:为什么结构类需要一个虚拟方法才能成为多态? 2022-10-19
- 向量<unique_ptr<A>>使用初始化列表 2022-10-23
