经过查阅资料显示,首先枚举是一种数据类型,枚举就是有点想typedef struct 和#define 的结合体的感觉。
#include <stdio.h>
/* 定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量 */
enum DAY
{
MON=1
TUE
WED
THU
FRI
SAT
SUN
}
yesterday = MON today = TUE tomorrow = WED;
/* 定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量 */
int x = 10 y = 20 z = 30;
void main()
{
printf("%d %d %d \n" x y z); //输出:10 20 30
printf("%d %d %d \n" yesterday today tomorrow); //输出:1 2 3
}
这是一个网上简单的枚举类型的小程序,在枚举类型中,如果没有赋值,第一个值默认为0,并依次递加。如果你给第一个值赋值了,那就会在第一个值的基础上依次递加。
同时枚举本身是一种数据类型,如果你要把值赋给其他变量,整形的需要进行强制转换,其他的我没有看到。
但是你的问题中,就是默认值的问题,从0开始。还有就是unsigned char类型的变量,你看看需不需要类型转换,还有输出格式。
还有就是,我一般遇到这种问题就是,VC6.0运行一下,我写单片机不知道对不对的时候我也是先把函数拿去外面实验一下对了再拿到单片机里面。
加油。