union [union tag] {
member definition;
member definition;
...
member definition;
} [one or more union variables];
union Data {
int i;
float f;
char str[20];
} data;
[dywang@deyu zzz]$ vim union1.c
[dywang@deyu zzz]$ cat union1.c
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main () {
union Data data;
printf( "sizeof(data) = %d\n", sizeof(data));
return 0;
}
[dywang@deyu zzz]$ gcc -o union1 union1.c
char str[20] 佔用 20 個位元組,所以 union data 佔用 20 個位元組。
[dywang@deyu zzz]$ ./union1 sizeof(data) = 20