写信网 > 娱乐百科 > c语言枚举类型enum例子

c语言枚举类型enum例子

时间:04-05    来源:写信网

大家好,下面小编给大家分享一下。很多人不知道C语言枚举类型的enum例子。下面详细解释一下。现在让我们来看看!

今天给大家讲讲我在产品开发中使用enum的一些琐碎操作。

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

为什么要谈枚举?

因为我发现它是一个容易忘记又非常重要的关键词,如果你看看大佬们写的程序,你真的会发现enum的应用有很多很多。

让我惊讶的是,市面上的一些C语言书籍和视频课程并不关注讲enum。

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

通过这些内容,你可以掌握以下知识:

掌握枚举的相关概念

掌握枚举的几种用法

掌握枚举在实际产品中的应用。

本文内容是《无限单片机编程的程序架构》视频教程的讲稿。我稍微做了些调整,如果你想看视频,也可以找我们拿。

我对枚举的理解是把一些固定值一一列出来,分别命名。例如,1被命名为true,0被命名为False。

True和false都是表示同一类型的数据,例如,它们都表示逻辑的正确或错误。

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

我们可以对比一下单片机寄存器芯片的数据。当我们将IE寄存器的值设置为0x01时,意味着外部中断0开启,当它设置为0x80时,所有中断都被允许。

这些枚举值对于register IE来说都是固定值,所以我们可以把这些值称为同类型的数据。为了方便阅读和记忆,我们给它们重新命名吧,这是枚举的重要功能之一。

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

上面的代码呢?它定义了一个枚举类型,但没有命名它。

没有办法像这样定义枚举变量,但是实际上是可以用的。

我们还可以通过定义一个普通变量,然后将枚举值赋给它,来输出正确的值。我个人经常懒懒的用这个方法。

2.用名称定义枚举

这里定义了一个名为WeekDay的枚举,所以我们可以通过这个枚举类型定义一个名为Day的枚举变量。

在这段代码中,枚举的别名被typedef定义为weekday,然后我们直接用WeekDay来定义一个枚举变量。这种方法是最常用的。

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

枚举的功能:

1.将固定值命名为数组访问的下标。当有很多固定数据的时候,比如几十个或者几百个,如果你要用0到100来表示的话,很难记住每个值是什么意思。

比如之前诊断过的产品,需要读取Pid数据,存储在一个数组中,有近百个Pid。

如果让你记住这100个分别代表哪个PID参数,估计你就崩溃了。

我用枚举的方式给每个PID参数命名是不是方便很多?

因为每个PID都单独存储在数组的一个元素中,所以我可以通过使用这个名称作为下标,快速地将指定的PID参数从数组中取出。

我相信你能理解有枚举的阅读和无枚举的阅读的区别。

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

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

下次想增减PID参数,不用改变数组大小,非常方便。

3.枚举作为设定值

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

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

都在这里了。更多的实际应用可以通过跟随无边单片机编程来学习和提高。

最后:

我不知道你是否注意到了,但事实上,C语言可以进行面向对象的编程,即使枚举与结构合作。

面向对象是什么意思?一切都是对象,MCU GPIO是对象,定时器是对象,串口是对象,等等。

每个对象都有自己独特的属性。比如GPIO有输入输出模式,输出频率,输出管脚数,这些都是GPIO的属性。

然后我们可以通过枚举和结构封装这些属性,把它们当做一个对象来对待。

如果大家都很难理解也没关系。都很正常。

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

以上解释了C语言中枚举类型的enum例子。这篇文章已经分享到这里了,希望能帮到你。如果信息有误,请联系边肖进行更正。

标签: c语言 枚举类型 enum用法 产品应用

c语言枚举类型enum例子 内容由写信网整理,转载请保留地址: http://m.woxiexin.com/baike/jSQZmsFmjpfqz2AJIOtEoLao.html

  • 最新阅读

PC百科   c语言枚举类型enum例子

0.037266s