C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言 共用体和枚举

C语言中共用体和枚举的实现

作者:VekiSon

本文主要介绍了C语言中共用体和枚举的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、共用体(联合体)

1.共用体的定义与声明

union 类型名
{
    数据类型 成员变量1;
    数据类型 成员变量2;
    数据类型 成员变量3;
    数据类型 成员变量4;
    ...
}

和结构体一样,共用体变量声明有 3 种常见形式:

// 方式1:定义后单独声明
union Data 
{
    int i;
    char c;
    float f;
};
union Data a, b;

// 方式2:定义时声明变量
union Data2 
{
    int x;
    double y;
} c, d;

// 方式3:匿名共用体(仅使用一次,无名称)
union 
{
    char ch;
    short s;
} e;

2.共用体的特征

3.共用体的应用

1.大小端判断

#include <stdio.h>

union DATA
{
    int a;
    char c;
};

int main()
{
    union DATA data;
    data.a = 0x12345678;
    if(0x78 == data.c)
    {
        printf("little end\n");
    }
    else
    {
        printf("big end\n");
    }
    return 0;                                                                 
}

2.作为函数的参数传递的时候的不同选项(EPOLL)

4.共用体与结构体的区别

特性共用体(Union)结构体(Struct)
内存分配所有成员共享同一块内存成员各自占用独立内存,总大小 = 各成员大小之和(含对齐)
成员访问同一时间只能有效访问一个成员可同时访问所有成员
大小计算总大小 = 最大成员的大小(含对齐)总大小 = 各成员大小之和(含对齐)
用途节省内存、类型转换组合不同类型数据,描述复杂对象

二、枚举

1.枚举的定义与声明

枚举:约定变量的取值范围。比如月份、周几。

//枚举值当常量值看,类型为整形(int)
enum 类型名 {枚举值1,枚举值2, 枚举值3,枚举值4 ,枚举值5, 枚举值6, ... };

//MON如果没有指定值,那么它的值就是0,后面枚举值就在一个的值的基础上+1
enum WEEK {MON, TUE, WED, THU, FRI, SAT, SUN};

//当然也可一给每个枚举值赋新值进去
enum WEEK {MON,TUE=3,WED=4,THU=5,FRI=6,SAT,SUN};

关键规则:

2.枚举的应用

代码示例:

#include <stdio.h>

enum WEEK {MON, TUE, WED, THU, FRI, SAT, SUN};

typedef enum
{
	JAN,
	FEB,
	MARCH,
	APRI,
	MAY,
	JU,
	JULY,
}MONTH;

int main()
{
	enum WEEK week;
	MONTH mon = MAY;

	int num = 0;
	printf("input num (0~6):");
	scanf("%d", &num);
	week = num;

	switch(week)
	{
		case MON:
			printf("go to school\n");
			break;
		case TUE:
			printf("go to swim\n");
			break;
		case WED:
			printf("go to read\n");
			break;
		case THU:
			printf("go to study\n");
			break;
		case FRI:
			printf("go to pao dao\n");
			break;
		case SAT:
			printf("go to da wa\n");
			break;
		case SUN:
			printf("go to sleep\n");
			break;
		default:
			printf("I don't know\n");
	}
}

到此这篇关于C语言中共用体和枚举的实现的文章就介绍到这了,更多相关C语言 共用体和枚举内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文