union 联合体特点:
一、成员首地址相同,也就是通过不同的成员访问会从相同的起始地址开始取数据,至于取多少个地址的数据取决于具体成员的类型。
二、union内存空间的分配按照其占用内存最大的成员来进行分配
下面这段代码利用联合体的第一个特性来判断CPU的大小端模式:输出的如果是true,则为小端模式,否则是大端模式;
#include<stdio.h>
#include<stdlib.h>
int checkcpu(void){
union w
{
int a;
char b;
}c;
c.a = 1;
return (c.b == 1);
}
void main()
{
if(checkcpu()){
printf("this cpu is little_end module \n");
}else{
printf("this cpu is big_end module \n");
};
}