广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c语言枚举类型enum的用法及应用实例
  • 809
分享到

c语言枚举类型enum的用法及应用实例

2024-04-02 19:04:59 809人浏览 八月长安
摘要

目录前言一、枚举的概念二、枚举的几种用法1.直接定义枚举值,然后给普通变量赋值。2.定义带名称的枚举三、定义枚举别名四、枚举有什么用,用在哪里?最后总结:前言 今天跟大家讲一下我在产

前言

今天跟大家讲一下我在产品开发时,用枚举(enum)的一些骚操作。

我跟你保证,今天的内容绝对是你在书本和视频学不到的。

为什么要讲枚举呢?

因为我发现它是一个容易被遗忘,同时又非常重要的关键词,大家如果看那些大佬写的程序,真的会发现有非常非常多enum的应用。

让我惊奇的是市面上的一些C语言书籍以及视频课程并没有重视去讲enum。

今天我们还是从理论到实际产品应用,教大家真正掌握enum。

通过这篇内容你能掌握以下知识:

  • 掌握枚举的相关概念
  • 掌握枚举的几种用法
  • 掌握枚举在实际产品中的应用

这篇内容是无际单片机编程那个程序架构视频教程的讲课稿,我稍微做了些调整,如果想看视频的也可以找我们拿。

一、枚举的概念

我对枚举的理解是把一些固定的值一一列举出来分别起个名字,比如说给1取个名字叫Ture, 0取个名字叫False。

Ture和false都是一种表示同一个类型的数据,比如说都是代表逻辑的对错。

我们模拟51单片机的IE中断使能寄存器每个位的值来举一个例子。

我们可以对照单片机寄存器芯片资料一下,当我们设置IE寄存器的值等于0x01的时候,代表开启外部中断0,设置成0x80的时候允许全部中断。

这些枚举值都是针对寄存器IE的固定值,所以我们可以称这些值是同一个类型的数据,我们把他们重新命名一下,便于阅读和记忆,这就是枚举的重要作用之一。

二、枚举的几种用法

1.直接定义枚举值,然后给普通变量赋值。

上面这个代码呢,定义了一个枚举类型,但是没有给枚举类型命名。

像这种枚举呢就是没办法定义枚举变量的,但是呢,这样其实也是可以用的。

我们通过定义一个普通变量,然后把枚举的值赋给他,一样也能输出正确的值,这种方法我个人经常偷懒地用。

2.定义带名称的枚举

这里定义了一个名字为WeekDay的枚举,那么我们就可以通过这个枚举类型定义一个名为day的枚举变量。

三、定义枚举别名

这个代码中通过typedef来定义枚举的别名为WeekDay,然后我们直接使用WeekDay day来定义一个enum变量,这种方法用的是最多的

四、枚举有什么用,用在哪里?

上面我们已经学习了枚举的一些定义方法,那么枚举到底在产品当中有什么用呢?

枚举的作用:

1.为固定的值命名,当作数组访问的下标,当固定的数据很多时,比如有几十上百个,那么如果你应0-100去表示就很难记住每个值代表什么意思。

比如说之前做过汽车故障诊断的产品,需要读取Pid数据存储到数组里,而PID有将近100个。

如果让你去记这100个每个代表哪个PID参数,估计你会崩溃。

而我把每个PID参数通过枚举另起一个一看就知道是什么参数的名字,是不是就方便很多?

因为每个PID都单独存储在数组的一个元素里,那我用这个名字作为下标能很快速地把指定PID参数从数组取出来。

看上图用枚举和不用枚举读取的区别相信你就能理解了。

2.可以作为一个变量,灵活分配数组大小。

我们在定义数组的时候,直接用该枚举类型的最后一个值作为数组大小。

下次要增加或者减少PID参数的时候就不用去改数组大小了,非常方便。

3.枚举作为设置值

上图是STM32的固件库代码,配置GPio模式的枚举定义。

我们可以看到,每一个枚举值都代表着一个模式,最后通过把这些值写入相应寄存器,最终完成GPIO的模式配置。

这里就先说这么多,更多实战应用可以跟随无际单片机编程做项目去学习和提高。

最后总结:

不知道大家有没有发现,其实枚举配合结构体,C语言照样也能做面向对象的编程。

面向对象是什么意思?就是一切皆对象,单片机GPIO是一个对象,定时器是一个对象,串口又是一个对象等等。

每个对象都有自己独有的属性,比如说GPIO有输入和输出的模式,有输出的频率,有输出的引脚号,这些都是属于GPIO的属性。

那我们可以通过枚举和结构体把这些属性封装起来,当做一个对象来处理。

如果大家理解比较困难也没关系,这都是正常的。

当你代码写到一定量的时候,慢慢就理解了。

到此这篇关于c语言枚举类型enum用法及应用的文章就介绍到这了,更多相关c语言枚举类型enum内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: c语言枚举类型enum的用法及应用实例

本文链接: https://www.lsjlt.com/news/130624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言枚举类型enum的用法及应用实例
    目录前言一、枚举的概念二、枚举的几种用法1.直接定义枚举值,然后给普通变量赋值。2.定义带名称的枚举三、定义枚举别名四、枚举有什么用,用在哪里?最后总结:前言 今天跟大家讲一下我在产...
    99+
    2022-11-12
  • c语言枚举类型enum怎么用
    本文小编为大家详细介绍“c语言枚举类型enum怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“c语言枚举类型enum怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、...
    99+
    2022-10-19
  • C语言数据类型枚举enum全面详解示例教程
    目录一、枚举类型的定义二、枚举类型的使用2.1创建变量2.2一些优点总结一、枚举类型的定义 enum Day//enum Day是一种类型 { Mon,//周一到周日这些叫枚举...
    99+
    2022-11-12
  • mysql枚举类型enum的用法是什么
    MySQL的枚举类型(ENUM)是一种数据类型,用于定义一个可以从预定义的取值列表中选择的列。在创建表时,可以使用ENUM来定义列的...
    99+
    2023-08-21
    mysql
  • C#枚举类型的概念及应用
    这篇文章主要讲解了“C#枚举类型的概念及应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的概念及应用”吧!C#枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一...
    99+
    2023-06-17
  • C#枚举类型的应用
    这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转...
    99+
    2023-06-17
  • c语言中enum类型的用法案例讲解
    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它...
    99+
    2022-11-12
  • C语言中枚举与联合体的使用方法(enum union)
    目录enum的定义 enum对比#define宏常量的好处 union的定义 联合体大小的计算 联合体配合算大小端的问题 总结enum的定义 枚举顾名思义就是一一列举,把...
    99+
    2022-11-12
  • C语言枚举的使用以及作用
    目录一、什么是枚举二、枚举的用法三、枚举有什么用,用在哪里?四、枚举要注意的地方一、什么是枚举 我对枚举的理解就是把一些固定的值—列举出来分别起个名字,比如说给1取个名字...
    99+
    2022-11-13
  • Go语言基础枚举的用法及示例详解
    目录概述一、普通枚举二、自增枚举注意代码 概述 将变量的值一一列举出来,变量只限于列举出来的值的范围内取值 Go语言中没有枚举这种数据类型的,但是可以使用const配合iota模式来...
    99+
    2022-11-12
  • C# 枚举类型的声明和使用方法
    本篇内容主要讲解“C# 枚举类型的声明和使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C# 枚举类型的声明和使用方法”吧!目录前言相关介绍一、枚举声明二、声明位置三、枚举使用前言学习记录...
    99+
    2023-06-20
  • C语言goto的应用举例以及详解
    目录一、goto语句的简单解释二、goto语句简单引用举例三、goto语句的实际引用场景总结一、goto语句的简单解释   goto语句其实就是一个跳转语句。C语言中提供了...
    99+
    2022-11-13
    c语言goto用法举例 c语言goto语句怎么用 C语言中的goto
  • C语言中联合体与共用体和枚举使用语法示例
    目录联合体/共用体-union枚举-enum联合体/共用体-union 声明联合体的语法格式typedef union 联合体名 {数据类型 成员名1;...
    99+
    2022-12-26
    C语言联合体 C语言共用体 C语言枚举
  • Android开发笔记之:用Enum(枚举类型)取代整数集的应用详解
    在Android的API中可以发现有很多用整数集来作为参数的地方,先来看一下实例。LinearLayout是大家所熟知的一个UI基本元素,它里面有一个方向的属性,可以通过以下方...
    99+
    2022-06-06
    枚举 enum 枚举类型 android开发 Android
  • C语言常用库函数的使用及模拟实现详解例举
    目录1.strlen1.计数法2.递归法3.指针减指针2.strcpy3.strcmp4.strcat5.strstr6.strtok7.字符分类函数8.memcpy&mem...
    99+
    2022-11-13
  • C语言中getchar的用法以及实例解析
    目录getchar解析一、getchar的返回类型及作用机制二、根据一段代码初步了解三、实例(“输入密码”)进一步了解1、代码达不到理想效果2、输入的密码中有...
    99+
    2022-11-13
  • Go语言基础类型及常量用法示例详解
    目录基础类型概述按类别有以下几种数据类型数值类型派生类型变量概述单个变量声明多个变量声明基础类型 概述 在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现时为了把数据...
    99+
    2022-11-12
  • Go语言基础类型及常量用法示例分析
    本篇内容介绍了“Go语言基础类型及常量用法示例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概述在 Go 编程语言中,数据类型用于声明函...
    99+
    2023-06-25
  • C语言详细分析讲解关键字enum与sizeof及typedef的用法
    目录一、枚举类型的使用方法二、sizeof 关键字的用法三、typedef 的意义四、小结一、枚举类型的使用方法 enum 是 C 语言中的一种自定义类型enum 值是可以根据需要自...
    99+
    2022-11-13
  • C语言中的变量类型有哪些及怎么用
    本篇内容主要讲解“C语言中的变量类型有哪些及怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中的变量类型有哪些及怎么用”吧!一。变量的类型告诉编译器怎么处理这个变量的数据。 ...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作