如果是声明的全局变量或者是静态的局部变量的话,没初始化,他就是0
但这个0跟枚举的第一个值是没有关系的,是系统默认设的一个值给他,
如果你设的是普通的局部变量,最好给他设个初始值,不然程序可能会出现问题。
你可以这样测试:
#include "stdio.h"
typedef enum
{
KeyScanState_0 = 0x01,//第一个值不设为0,设为1
KeyScanState_1 = 0x01,
KeyScanState_2 = 0x02,
}KeyScanState_Typedef;
KeyScanState_Typedef KeyScanState;//声明成全局变量
int main()
{
printf("%d\n",KeyScanState);
}
你会发现,他输出是0,不是枚举的第一个值1,所以说,不初始化他的值跟枚举值没有关系,因为枚举变量实际上是当成整型数来处理的,全局变量和静态局部变量(加static修饰)默认设为0,