联合体
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h> union sa
{
double a;
int b;
};
int main()
{ union sa ssa;
printf ( "%d \n" , sizeof ( union sa));
} |
联合体的声明,定义,与结构体一样。
联合体的长度为最长成员的长度。
联合体的初始化
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h> union sa
{
int a;
int b;
};
int main()
{ union sa ssa={1};;
printf ( "%d \n" ,ssa.a);
} |
初始化的值必须为第一个成员的类型
如果是其他类型,则会转化成该类型(如果能);
1
|
union sa ssa={1.9};
|
a为1;
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> union sa
{
float a;
int b;
};
int main()
{ union sa ssa={1};
printf ( "%f \n" ,ssa.a);
} |
a为1.000000