#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
//这里学习的共用体可以参考上一次的结构体,寻找区别与共同之处、
union Data
//union就是共用体的标志
//最简单的定义一个共同体,共同体tag类型为Data但是变量却是data,而data中又能容纳多个不同类型的变量
{
int i;
float f;
char str[20];
} data;
int main()
{
union Data data;
printf("共同体data的数据大小为:%d\n", sizeof(data));
//这里会输出20,因为我们定义的共同体里边最大的str就有二十个大小
data.i = 10;
data.f = 220.5;
//跟结构体是一样的,用的是.作为访问字符,定义的时候也是数字直接等于,然后字符就用strcpy函数复制
strcpy(data.str, "C Programming");
printf("data.i : %d\n", data.i);
printf("data.f : %.1f\n", data.f);
printf("data.str : %s\n", data.str);
//注意这里变量i和f会输出乱码,只有str能正常输出,因为不支持多个变量同时占位,应该改成以下形式
data.i = 10;
printf("data.i : %d\n", data.i);
data.f = 220.5;
printf("data.f : %.1f\n", data.f);
strcpy(data.str, "C Programming");
printf("data.str : %s\n", data.str);
return 0;
//说实话感觉没有结构体那么多用法,而且是可以被代替的,学习扩充知识吧,说不定以后就用上了呢
}