联合
选择:
成员是
· 一个int i 还是,
· 一个char c
sizeof(union...)=sizeof(每个成员)的最大值。
union AnElt{
int i;
char c;
}elt1,elt2;
elt1.i=4;
elt2.c='a';
· 存储。
· 所有的成员共享一个空间。
· 同一时间只有一个成员是有效的。
· union的大小是其最大的成员。
· 初始化。
· 对第一成员做初始化。
union的用处
#include<stdio.h>
typedef union{
int i;
char ch[sizeof(int)];
}CHI;
int main(int argc,char const *argv[])
{
CHI chi;
int i;
chi.i=1234;
for(i=0;i<sizeof(int);i++){
printf("%02hhX",chi.ch[i]);
}
printf("\n");
return 0;
}
我们使用的电脑cpu是x86的cpu,是一种小端的机器。
· 输出的结果,低位在前。
· 低位在前,一个数放在内存里时,把低的东西放在前面。
通常可以用union获得一个数字内部的字节。