一、概念
共用体:使几个不同的变量占据同一段内存的结构称为共用体。
二、声明共用体类型,定义共用体变量
方法 1 声明同时定义
union tel_email //电话或邮箱
{
int tel;
char *email;
}contactInfo;//联系方式
方法 2 先声明,后定义
//声明共用体类型
union tel_email
{
int tel;
char *email;
};
//定义共用体变量
union tel_email contactInfo;
注:共用体变量在内存中的长度
三、初始化、引用共用体变量
注意:共用体变量不可以在定义的同时初始化。
contactInfo.email="kinglake_w@163.com";
printf("%s\n\n",contactInfo.email);
附录
注:以前的C不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用指向共用体变量的指针。C99允许共用体变量作为函数参数。具体使用方法与结构体相同,可以参考博主的【C语言】结构体变量作函数参数(三个方法)这篇文章。
完整测试代码如下:
#include <stdio.h>
union tel_email
{
int tel;
char *email;
};
int main()
{
//共用体变量定义、初始化
union tel_email contactInfo;
contactInfo.email="kinglake_w@163.com";
//函数声明、调用
void fun(union tel_email);
fun(contactInfo);
return 0;
}
//函数定义
void fun(union tel_email contactInfo)
{
printf("%s\n\n",contactInfo.email);
}