c语言常用数据类型

一、枚举

    本文有的内容摘自被新手忽视的枚举enum用法,竟如此强大! - 知乎 (zhihu.com) 如有侵权请告知 !

  1、简介:枚举类型是一种基本数据类型,用于定义一组具有离散值的常量,可以让数据简洁,易读。通常用于为常量取名字。

      每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增

  2、格式: enum 枚举名 {枚举元素1,枚举元素2,……};   枚举类型是按照int型存储的(每个成员都是4字节---不同系统有区别)。

      如:一星期有 7 天,如果不用枚举,则需要使用宏定义:(使用枚举替代预处理指令#define

                                            值分别为:1 2 3 4 5 6 7

        定义枚举类型时赋值:enum day { MON , TUE , WED = 5 , THU , FRI , SAT , SUN};                    值分别为: 0 1 5 6 7 8 9

         

        注意:一个 int 类型整数不能直接赋值给一个枚举变量,必须强制进行类型转换后才能赋值。

        

     (1)、先定义枚举类型,再定义枚举变量                                                    (2)、定义枚举类型的同时定义枚举变量

                                                

    (3)、省略枚举名称,直接定义枚举变量                 (4)、使用Typedef

                                    

  3、应用举例

    (1)、设置并限定单片机中寄存器每个位的值,右图是STM32固件库中GPIO配置模式的定义。使用中可  = GPIO_MODE_IPU;的方式

                       

    (2)、为固定的值命名,当作数组访问的下标。固定数据很多时,用0-100去表示就很难记住每个值代表什么意思。

        

        

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

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

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

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

         

     (3)、作为一个变量,灵活分配数组大小

        

        

 

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

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

 

 

 

       

 

 

 




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

被新手忽视的枚举enum用法,竟如此强大! - 知乎 (zhihu.com)

posted @ 2023-11-10 17:26  耿通宇  阅读(43)  评论(0编辑  收藏  举报