一、联合体基础
在C语言中,联合体(Union)是一种特殊的复合数据类型
- 它允许在其声明的内存区域中存储多个不同的数据类型,但同一时刻只能保存其中一种类型的数据。
- 各个成员共享同一块内存空间,因此改变任何一个成员变量的值,都会影响到其他成员。
二、探究字节序:程序设计与解析
下面展示的C语言代码片段,通过定义一个包含整型变量a
和字符型变量i
的联合体,并进行特定的操作,来判断当前运行环境的字节序:
int FUN() {
union {
int a;
char i;
} s;
s.a = 1; // 将整数1赋值给联合体的整型成员a
return s.i; // 返回联合体的字符型成员i的值
}
int main() {
int a = FUN();
if (a == 0) {
printf("大端\n");
}
else {
printf("小端\n");
}
return 0;
}