前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【熟视C语言】自定义类型之枚举详解

【熟视C语言】自定义类型之枚举详解

作者头像
Crrrush
发布2023-06-23 14:33:04
1090
发布2023-06-23 14:33:04
举报

枚举

枚举,也就是列举。现实生活中有很多这种可以列举出来的事物,比如星期一星期二这样的有限的天数,性别的种类,月份等等。

枚举类型的定义

以下几个为枚举类型的定义演示:

代码语言:javascript
复制
enum day//星期
{
	Mon,
	Tues,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};

enum gender//性别
{
	male,
	female,
	unknown
};

上面的enum dayenum gender就是枚举类型,而括号内的内容就是枚举类型的可能取值,也叫枚举常量。这些枚举常量都是有值的,默认是从0开始,后面每一个常量值递增1。当然也可以手动取值,对于取值后的枚举常量,其后面的值也会根据此常量值相应改变,例如:

代码语言:javascript
复制
enum color
{
	RED = 2,
	BLUE = 4,
	GREEN = 8
};

enum Example
{
	Example1,//0
	Example2 = 4,//4后面的值依次递增
	Example3,//5
	Example4,//6
	Example5,//7
};

枚举的优点

对于以上定义,用#define同样可以完成,但为什么要使用枚举呢?

枚举的优点:

  1. 增加代码可读性和可维护性。
  2. #define定义的标识符相比,枚举有类型检查,更严谨。
  3. 防止命名污染(封装)。
  4. 便于调试。
  5. 使用方便,一次可以定义多个常量。

枚举的使用

代码语言:javascript
复制
enum Example
{
	Example1,//0
	Example2 = 4,//4
	Example3,//5
	Example4,//6
	Example5,//7
};

int main()
{
	enum Example a = Example1;//只能拿枚举常量给枚举变量赋值,避免出现类型差异
	a = 4;//虽然在我使用上的vs编译器上能编译成功,但是这是一个危险且非法的赋值

	return 0;
}

结语

自定义类型第二部分到这里就结束了,非常感谢各位读者能读完这篇文章,如果你觉得做的还不错的话,可以点赞收藏分享,让更多的朋友知道。当然,如果你觉得文章有什么问题的话也欢迎在评论区留言或私信告诉我哦!下期再会!

彩蛋

在下方的两个仓库可以获取我这篇文章的源码哦。 gitee:路径:Custom type\enum GitHub:路径:Custom type\enum

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 枚举
    • 枚举类型的定义
      • 枚举的优点
        • 枚举的使用
        • 结语
        • 彩蛋
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档