C语言 自定义类型 之 【枚举】
文章目录
- 前言
- 枚举的介绍
- 枚举类型的定义
- 枚举的优点
- 枚举的使用
- 写在最后
前言
枚举在我们平时练习或学习的时候可能不是很常用,但是其在工程项目里,还是比较常见的,因为他能起到优化用。并且,有时我们在写题的时候,也会运用到枚举的思想。
枚举的介绍
枚举顾名思义就是 一 一 列举。把可能的取值 一 一 列举。
比如我们现实生活中:
1.一个星期从星期一到星期天的有限的7天可以 一 一 列举。
2.月份从1月到12月也可以 一 一 列举出来。
3.颜色分红黄蓝绿蓝靛紫几种颜色,也可以 一 一 列举出来。
枚举类型的定义
直接上代码(注意观察语法形式):
// enum var_name 这个就是枚举类型
enum Sex // 枚举性别
{MAN, // 男人 WOMAN // 女人// 当然也有可能是人妖
};enum Day // 枚举星期
{ Mon, // 注意这里是逗号Tues,Wed,Thur,Fri,Sat,Sun // 最后一个后面什么符号也不用打
}; // 这里必须要有分号enum Color
{RED,GREEN,BLUE
};
当然,既然是类型,那么也可以使用typedef
起别名:
typedef enum Color
{RED,GREEN,BLUE
}Clr; // 将 enum Color 类型名 简化成 Clr
1.以上定义的enum Day
,enum Sex
,enum Color
都是枚举类型。
2.{}
中的内容是枚举类型的可能取值,也叫枚举常量。
3.这些可能取值都是有值的,默认从0
开始,依次递增1
,例如:上面的RED
可以看作0
,GREEN
可以看作1
,BLUE
可以看作2
。
4.当然在定义的时候也可以赋初值。例如:
enum Color//颜色
{RED = 1,GREEN = 2,BLUE = 4
};
而如果是这样赋值:
enum Day // 枚举星期
{ Mon, Tues,Wed,Thur = 10,Fri,Sat,Sun
};
- 那也就意味着从
Mon
到Wed
是由0
开始依次递增(Mon = 0, Tuse = 1, Wed = 2
),从Thur
到Sun
是由10
开始依次递增(Thur = 10, Fri = 11, Sat = 12, Sun = 13
)。
枚举的优点
- 为什么使用枚举?
- 我们可以使用 #define 定义常量,为什么非要使用枚举?
原因:
- 增加代码的可读性和可维护性。
- 和#define定义的标识符比较枚举有类型检查,更加严谨。
- 防止了命名污染(封装)。
- 便于调试。
- 使用方便,一次可以定义多个常量。
- 我们可以去看很多项目的源码,会发现,里面很多用枚举来定义常量。
枚举的使用
enum Color//颜色
{RED = 1,GREEN = 2,BLUE = 4
};// 只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
enum Color clr = GREEN;clr = 5;
写在最后
虽然在现在阶段我们很难体会到枚举的好处,但是我们可以多去看看别人的代码,多去领悟一下枚举到底有什么用?这样我们使用起来也才会得心应手。
感谢阅读本小白的博客,错误的地方请严厉指出噢!
C语言 自定义类型 之 【枚举】相关推荐
- 【维生素C语言】第十二章 - C语言自定义类型讲解(联合体、枚举、联合体)
原标题:自定义类型讲解?楼下保安大爷直呼内行!![C语言] 前言: 本章将对C语言自定义类型进行讲解,前期我们讲过结构体,这章将会把前面结构体还没讲完的知识继续补充. 一.结构体(struct) 结构 ...
- vba 定义类_VBA|自定义类型、枚举类型和类模块及其使用
VBA中,自定义类型相当于C语言中的结构体,枚举类型也与C语言中的枚举类型相似.自定义类型和枚举类型放到模块的子过程的前面即可. VBA中, 类模块相当于C语言中的类,类模板要单独放到类模块中(自定义 ...
- C语言自定义类型详解
C语言自定义类型详解 一.结构体 1.结构的声明 2.特殊的声明 3.结构的自引用 4.结构体变量的定义和初始化 5.结构体内存对齐 6.修改默认对齐数 7.结构体传参 二.位段 1.什么是位段 2. ...
- 浅谈C语言自定义类型枚举和联合体以及对结构体位段的补充
文章目录 前言 一.结构体位段的补充说明 1.结构体位段的定义 2.位段的内存规则 3.位段的总结 2.枚举类型 1.枚举的简单介绍 3.联合体类型 1.联合体简单介绍 2.联合体存储方式 4.总结 ...
- C语言——自定义类型(结构体,枚举,联合体,位段)
目录 结构体 结构体的定义 匿名结构体 结构体的自引用 结构体大小计算 位段 枚举 枚举概念 枚举的声明与使用 枚举大小计算 枚举与宏的区别 联合体 联合体的概念 联合体的声明与使用 联合体大小计算 ...
- C语言——自定义类型详解(结构体,联合体,枚举,位段)
专栏:C语言 个人主页:HaiFan. 专栏简介:本专栏主要更新一些C语言的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下. 结构体 前言 一.结构体 1.结构体类 ...
- 详解C语言自定义类型(结构体,位段,枚举,联合)
C语言中有许多类型,比如整形int,字符型char,双精度浮点型double等等.这些类型可以存放一些值或者字符.但是如果我想要一种类型存放一本书,显然是没有的,那么这时候就需要自定义类型了,也就是结 ...
- C语言自定义类型的介绍(结构体,枚举,联合体,位段)
⭐️前面的话⭐️ 大家好!在C语言中,有个叫"自定义类型"玩意,它究竟是什么呢?其实,就是字面意思,可以自己定义的类型就是自定义类型.具体说就是我们熟知的结构体,枚举,位段,联合体 ...
- C语言自定义类型详解!
目录 内容概述 结构体类型 结构类型的声明 结构体的特殊声明 结构体的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 位段 什么是位段? 位段的内存分配 位段跨平台问题 枚举类型 枚举类 ...
- C语言自定义类型——枚举类型讲解
一.枚举类型 定义:顾名思义就是一一列举,可以列举出所有常见的可能.每种可能都是常量,称为枚举常量! 把可能的取值一一列举. 比如我们现实生活中: 一周的星期一到星期日是有限的7天,可以一一列举: e ...
最新文章
- linux cache 内核参数,Linux内核中drop_caches参数
- android rtsp协议转http协议_网络协议HTTP 协议(一)
- ubuntu下安装android ndk
- Linux设备树翻译计划
- 华为数据通信产品VRP操作系统的使用
- python 直方图排序_利用直方图对lis进行排序
- MVVM教程[资源+分析]
- 学习Python编程培训 有哪些爬虫技术课程需要掌握
- 555定时器的应用——施密特触发器
- 通过YAJL生成json语句
- 用 js 写的 WebSocketHeartBeat,心跳检测,断线重连
- srs之服务搭建+OBS推流(简单记录)
- C++递归完成汉诺塔游戏(超详细解读)
- java怎么创建jsp文件怎么打开_Eclipse中怎么创建jsp文件?
- Swift 语言的设计错误
- NLP预处理——编码、繁转简、停用词、表情、标签
- 更改bootstrap工具提示-tooltip
- signature=6f778f12ee5c543045f5827af4fb220b,来用百度密语吧!!!
- STC89C52单片机AD/DA介绍与代码演示
- vm10升级到16的问题
热门文章
- Python,pandas中DataFrame的选取总结
- 真无线蓝牙耳机哪个延迟最低?低延迟蓝牙耳机推荐
- 养肾=养命!这7个最伤肾的行为你犯了吗?程序员收藏
- python与金融工程的区别_科研进阶 | 纽约大学 | 金融工程、量化金融、商业分析:Python金融工程分析...
- 新版的豌豆荚如何连接电脑
- 不得不说,这是青铜才需要了解的,绝地求生刺激战场段位保护解析
- 此计算机必须为委派而被信任_允许受信任的用户进行委派
- MathJax 引擎数学符号说明
- charles的使用
- 美团机器学习实践 密码_机器学习遇到密码学的地方