枚举是一种用户定义的数据类型,用关键字enum 以如下语法来声明:
enum 枚举类型名字 {名字0,名字1,......,名字n} ;
枚举类型名字通常并不是真的使用,要用的是在大括号里的名字,因为他们就是常量符号,它们的类型是int,值依次从0到n;
eg:
enum colors {red,yellow,green};//创建了三个常量,red是0,yellow是1,green是2;
//定义了一个新的数据类型叫enum color;此类型和int一定程度上等同
省略枚举标签直接声明变量
enum weekday {mon,tue,wed,thu,fri,sat,sun};
enum weekdy someday;
//enum weekday {mon,tue,wed,thu,fri,sat,sun} someday;//与上面等价;
当需要一些可以排列起来的常量值时,枚举的意义就是给这些常量值名字;
在定义枚举类型的常量时也可以对其进行赋值
#include<stdio.h>
enum color {
red=1,
yellow,
green=5,
numcolors
};
int main(){
printf(" red=%d\n yellow=%d\n green=%d\n numcolors=%d\n",red,yellow,green,numcolors);
return 0;
}
获取当前日期是周几的程序举例
#include<stdio.h>
#include<time.h>
enum weekday {
sun,mon,tue,wed,thu,fri,sat
};
int main(){
time_t rawtime;
struct tm *timeinfo;
enum weekday wday;
rawtime=time(NULL);
timeinfo=localtime(&rawtime);
wday=(enum weekday)timeinfo->tm_wday;
printf("%d",wday);
return 0;
}
关于time.h头文件