浏览 C语言枚举类型(C语言enum用法)详解 (biancheng.net) 后的实践
enum的用法类似#deine。(可以说就是#define的重写了)
例子①、②、③、④结果相同
①:用#deine等常规代码 实现②、③、④enum的效果
#include<stdio.h>
#include<Windows.h>
#define Monday 0
#define Tuesday 1
#define Wednesday 2
#define Thursday 3
#define Friday 4
#define Saturday 5
#define Sunday 6
int main()//输入1-7,控制台输出 星期几
{
int t;
scanf_s("%d", &t);
t = t - 1;
switch (t)
{
case Monday:printf_s("Monday\n"); break;
case Tuesday:printf_s("Tuesday\n"); break;
case Wednesday:printf_s("Wednesday\n"); break;
case Thursday:printf_s("Thursday\n"); break;
case Friday:printf_s("Friday\n"); break;
case Saturday:printf_s("Saturday\n"); break;
case Sunday:printf_s("Sunday\n"); break;
default:break;
}
system("pause");
return 0;
}
②:用enum的实现 enum Week{ Monday ,...};
#include<stdio.h>
#include<Windows.h>
enum Week{ Monday ,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};
int main()
{
int t;
scanf_s("%d", &t);
t = t - 1;
switch (t)
{
case Monday:printf_s("Monday\n"); break;
case Tuesday:printf_s("Tuesday\n"); break;
case Wednesday:printf_s("Wednesday\n"); break;
case Thursday:printf_s("Thursday\n"); break;
case Friday:printf_s("Friday\n"); break;
case Saturday:printf_s("Saturday\n"); break;
case Sunday:printf_s("Sunday\n"); break;
default:break;
}
system("pause");
return 0;
}
③enum 定义的类型 定义的 变量 是 DWORD类型 (unsigned int) 并且可以直接当做DWORD使用
#include<stdio.h>
#include<Windows.h>
enum Week{ Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}t;//enum Week{}t,a;
//enum Week{ Monday ,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}t=0;初始化t变量
int main()
{
scanf_s("%d", &t);
t = (Week)(t - 1);
switch (t)
{
case Monday:printf_s("Monday\n"); break;
case Tuesday:printf_s("Tuesday\n"); break;
case Wednesday:printf_s("Wednesday\n"); break;
case Thursday:printf_s("Thursday\n"); break;
case Friday:printf_s("Friday\n"); break;
case Saturday:printf_s("Saturday\n"); break;
case Sunday:printf_s("Sunday\n"); break;
default:break;
}
system("pause");
return 0;
}
④对预定义的值可以修改,从左往右一次+1;如Wednesday=10,那么默认Thursday=11;
#include<stdio.h>
#include<Windows.h>
enum Week{ Monday =1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}t;
int main()
{
scanf_s("%d", &t);
switch (t)
{
case Monday:printf_s("Monday\n"); break;
case Tuesday:printf_s("Tuesday\n"); break;
case Wednesday:printf_s("Wednesday\n"); break;
case Thursday:printf_s("Thursday\n"); break;
case Friday:printf_s("Friday\n"); break;
case Saturday:printf_s("Saturday\n"); break;
case Sunday:printf_s("Sunday\n"); break;
default:break;
}
system("pause");
return 0;
}