C语言枚举的使用以及作用

 更新时间:2022年03月06日 10:57:50   作者:Embedded learner  
这篇文章主要介绍了C语言枚举的使用以及使用,阅读下面内容我们将掌握枚举的相关概念、掌握枚举的几种用法、掌握枚举在实际产品中的用法,需要的朋友可以参考一下

一、什么是枚举

我对枚举的理解就是把一些固定的值—列举出来分别起个名字,比如说给1取个名字叫Ture,0取个名字叫False,Ture和False都是表示同一个类型的数据,比如说都是代表逻辑的对错,这里用51单片机的IE中断使能寄存器来举一个例子。

二、枚举的用法

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

  • 2、定义一个带名称的枚举

  • 3、定义枚举别名

#include <stdio.h>
enum 
{
    EX0_ENABLE = 0x01,
    ET0_ENABLE = 0x02,
    EX1_ENABLE = 0x04,
    ET1_ENABLE = 0x08,
    ES_ENABLE = 0x10,
    ET2_ENABLE = 0x20,
    EA_ENABLE = 0x80,
};
typedef enum
{
    monday,
    tuesday,
    wednesday,
} weekday;

int main()
{
    unsigned char IEReg;
    weekday day;
    IEReg |= ET0_ENABLE;
    IEReg |= EA_ENABLE;
    day = monday;
    printf("day=%u\r\n",day);
        
    return 0;    
}

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

枚举的作用:

通过枚举总值来灵活分配数组的大小,方便从大数组里调取需要的数据。

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

把列举的固定值定义为某一种数据类型,这样定义的目的是方便提高代码的可读性和专业性。

枚举和define比较像,define也是用一个别名来代表一个数据,甚至代表一个函数。但是enum的值有自动递增的功能,另外enum是一组同类型数据的集合,在项目比较大的情况下,用枚举来封装数据能更好的实现模块化。

四、枚举要注意的地方

  • 枚举的值默认是从0开始递增。
  • 枚举最大值是0XFFFFFFFF,即4个字节。

枚举里面的值不一定要从小到大,默认是递增,也可以自己设置值。

到此这篇关于C语言枚举的使用以及使用的文章就介绍到这了,更多相关C语言枚举内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言字符串左旋的两种实现方法

    C语言字符串左旋的两种实现方法

    汇编语言中有一种移位指令叫做循环左移(ROL),下面这篇文章主要给大家介绍了关于C语言字符串左旋的两种实现方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • C++动态规划计算最大子数组

    C++动态规划计算最大子数组

    所谓最大子数组就是连续的若干数组元素,如果其和是最大的,那么这个子数组就称为该数组的最大子数组
    2022-06-06
  • C++模板实现顺序栈

    C++模板实现顺序栈

    这篇文章主要为大家详细介绍了C++模板实现顺序栈,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • c++输出斐波那契数列示例分享

    c++输出斐波那契数列示例分享

    这篇文章主要介绍了c++输出斐波那契数列示例,需要的朋友可以参考下
    2014-03-03
  • C语言数据结构之单链表存储详解

    C语言数据结构之单链表存储详解

    链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。本文将和大家一起聊聊C语言中单链表的存储,感兴趣的可以学习一下
    2022-07-07
  • C语言动态内存函数详解

    C语言动态内存函数详解

    这篇文章主要介绍了C语言动态内存函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-09-09
  • C++实现日期类(Date)

    C++实现日期类(Date)

    这篇文章主要为大家详细介绍了C++实现日期类的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • C++中的关键字volatile详解

    C++中的关键字volatile详解

    这篇文章主要介绍了C++中的关键字volatile使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Qt的qDebug使用小结

    Qt的qDebug使用小结

    使用qDebug()函数它可以把调试信息直接输出到控制台上,本文就来介绍一下qDebug的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-06-06
  • C语言中的sscanf()函数使用

    C语言中的sscanf()函数使用

    本文主要介绍了C语言中的sscanf()函数使用,sscanf通常被用来解析并转换字符串,可以实现很强大的字符串解析功能,下面就一起来了解一下
    2023-05-05

最新评论