枚举变量的值的问题。默认情况下枚举变量与枚举变量表中的第一个常量的值一样?? 30

typedefenum{KeyScanState_0=0x00,KeyScanState_1=0x01,KeyScanState_2=0x02,}KeyScanState... typedef enum
{
KeyScanState_0 = 0x00,
KeyScanState_1 = 0x01,
KeyScanState_2 = 0x02,
}KeyScanState_Typedef;
KeyScanState_Typedef KeyScanState;

请问,现在 KeyScanState的值是0X00??默认状态下和枚举变量与列表中的第一个常量的值一样?
展开
 我来答
百度网友6fe74e2
推荐于2018-04-11 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:275万
展开全部
如果是声明的全局变量或者是静态的局部变量的话,没初始化,他就是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,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式