共用体的定义和初始化
结果是4!
为什么会是4呢?整型是4个字节,字符是1个字节,加起来不是5吗?
又或者内存对齐不应该也是5吗?
例题:
计算该机器字节序的大小端
第一种方法:
int main() {
int a = 1;
int ret = *(char *)&a;
if (ret == 1) {
printf("小端");
}
else {
printf("大端");
}
return 0;
}
第二种方法: 利用函数
int fun() {
int a = 1;
return *(char *)&a;
}
int main() {
int ret = fun();
if (ret == 1) {
printf("小端");
}
else {
printf("大端");
}
}
第三种方法: 利用共用体
int fun() {
union n {
char c;
int a;
}u;
u.a = 1;
return u.c;
}
int main() {
int ret = fun();
if (ret == 1) {
printf("小端");
}
else {
printf("大端");
}
return 0;
}