c语言:输出枚举型变量的值,应该用什么格式说明

 我来答
创作者0NaQMWSlND
2020-01-17 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:726万
展开全部
在C语言中,枚举变量,即以enum关键字定义的变量,是按照整型或者无符号整型来处理的。
1
如果在枚举变量中,不存在负值,如
enum
test
{
A,
B,
};
这样的定义,系统会将该枚举变量按照无符号整型处理,即unsigned
int
型。输出的时候使用%u格式即可。
enum
test
t
=
A;
printf("%u",
t);
2
如果在枚举变量中存在负值,那么系统按整型处理,即int型。如定义
enum
test
{
A=-199,
B,
};
输出时,需要用%d格式:
enum
test
t
=
A;
printf("%d",
t);
3
由于枚举变量在书写时,一般不会太大,很少有在没有负数的时候,即按照无符号数处理的时候超出有符号数所能表示的正数范围,即一般不会把最高位置一,所以大多数情况下,用%d输出都是没问题的。
创作者PjyuAv4OWA
2020-04-14 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.5万
采纳率:25%
帮助的人:880万
展开全部
enum其实是用字符串来标志一些值(也就是枚举值)
只是从值的大小来考虑的话,
enum
color{red,green,blue,white};
类似于:
#define
red
0
#define
green
1
#define
blue
2
#define
white
3
只不过这些宏定义都是属于color这个统一的类型的(枚举型)
所以想通过值来逆推出枚举的枚举元素名来。
如果一定要输出的话,只能这么做了:
switch((enum
color)i)
{
case
0:
printf("red\n");break;
case
1:
printf("green\n");break;
case
2:
printf("blue\n");break;
case
3:
printf("white\n");break;
default:
break;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式