0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言必备知识枚举体

CHANBAEK 来源:小李的创客实验室 作者: 初出茅庐的小李 2023-11-29 16:07 次阅读

C语言必备知识枚举体

枚举类型是ANSI C新标准所增加的。如果一个变量只有几种可能的值,可以定义为枚举类型。所谓“枚举是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。

枚举的定义形式

enum  枚举类型名 
{
	枚举元素列表
}枚举变量列表;

可以先声明类型再定义变量,也可以同时进行

举例

//先声明类型再定义变量
enum weekday
{
	sun,
	mon,
	tue,
	wed,
	thu,
	fri,
	sat
};

enum weekday  workday,week_end;

//声明类型同时定义变量
enum
{
	sun,
	mon,
	tue,
	wed,
	thu,
	fri,
	sat
} workday,week_end;

枚举的使用

#include < stdio.h > //printf scanf fputc


enum weekday
{
	sun,//默认是0开始 后面依次递增 
	mon,
	tue,
	wed,
	thu,
	fri,
	sat
};
enum weekday workday;
int main(void)
{
    workday = mon;
    printf("workday = %drn",workday);
 	return0;
}

枚举注意事项

  • 在编译中,对枚举元素按常量处理,它们不是变量,不能对它们赋值。
  • 枚举元素作为常量,它们是有值的,语言编译按定义时的顺序使它们的值为0,1,2,…。
  • 枚举值可以用来做判断比较。如: if(workday = = mon)… if(workday > sun)…
  • 一个整数不能直接赋给一个枚举变量。应先进行强制类型转换才能赋值。如:workday = (enum ewwkday)2;

单片机中使用枚举的例子

描述GPIO工作模式的枚举

/** 
  * @brief  GPIO Configuration Mode enumeration 
  */
typedefenum
{ 
  GPIO_Mode_IN   = 0x00, /*!< GPIO Input Mode */
  GPIO_Mode_OUT  = 0x01, /*!< GPIO Output Mode */
  GPIO_Mode_AF   = 0x02, /*!< GPIO Alternate function Mode */
  GPIO_Mode_AN   = 0x03/*!< GPIO Analog Mode */
}GPIOMode_TypeDef;

描述GPIO工作速度的枚举

/** 
  * @brief  GPIO Output Maximum frequency enumeration 
  */
typedefenum
{ 
  GPIO_Low_Speed     = 0x00, /*!< Low speed    */
  GPIO_Medium_Speed  = 0x01, /*!< Medium speed */
  GPIO_Fast_Speed    = 0x02, /*!< Fast speed   */
  GPIO_High_Speed    = 0x03/*!< High speed   */
}GPIOSpeed_TypeDef;

至此,枚举的简单介绍就到这了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44556

    浏览量

    634970
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136764
  • 代码
    +关注

    关注

    30

    文章

    4786

    浏览量

    68557
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52079
  • 枚举
    +关注

    关注

    0

    文章

    16

    浏览量

    4588
收藏 人收藏

    评论

    相关推荐

    C语言枚举精讲分析

         在使用带有数字性质的名称时有的时候需要用到枚举的方式进行定义函数名字,按照对应的数字格式来对应相应的名称。枚举成员的值是常量不是变量。      我们首先讲解一下枚举与结构
    的头像 发表于 03-02 10:58 3937次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>中<b class='flag-5'>枚举</b>精讲分析

    C语言基础知识科普

    C语言是单片机开发中的必备基础知识,本文列举了部分STM32学习中比较常见的一些C语言基础
    发表于 07-21 10:58 1894次阅读

    STM32单片机中的C语言基础知识

    C语言是单片机开发中的必备基础知识,本文列举了部分STM32学习中比较常见的一些C语言基础
    发表于 09-21 17:21 4564次阅读

    C语言枚举的基本概念和常见用法

    C语言中,枚举是一种方便组织和表示一组相关常量的工具。枚举类型有助于提高代码的可读性和可维护性。本文将介绍C
    发表于 08-17 15:32 1460次阅读

    C51单片机及C语言知识必备秘籍

      电子发烧友网讯:应广大电子发烧友网读者要求,本电子书《C51单片机及C语言知识必备秘籍》为《单片机关键
    发表于 07-30 13:59 9847次阅读

    C51单片机及C语言知识必备秘籍

    C51单片机及C语言知识必备秘籍
    发表于 09-28 23:18

    C51单片机及C语言知识必备秘籍

    C51单片机及C语言知识必备秘籍
    发表于 12-20 22:50

    c51单片机必备c语言知识

    c51单片机必备c语言知识
    发表于 01-05 22:51

    枚举C语言中的一种基本数据类型

    C语言中,枚举类型是被当做 int 或者 unsigned int 类型来处理的,所以按照 C 语言规范是没有办法遍历
    的头像 发表于 09-25 15:45 8656次阅读
    <b class='flag-5'>枚举</b>是<b class='flag-5'>C</b><b class='flag-5'>语言</b>中的一种基本数据类型

    go语言枚举类型怎么用

    go 语言枚举类型是这么用的?在什么场景下会用到枚举?本文对 go 语言枚举做了详细讲解。 枚举
    的头像 发表于 09-02 09:43 5180次阅读

    C语言枚举简述

    C语言中,如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。
    的头像 发表于 03-24 15:15 794次阅读

    STM32中C语言的基础知识

    C语言是单片机开发中的必备基础知识,本文列举了部分STM32学习中比较常见的一些C语言基础
    的头像 发表于 04-27 17:42 1302次阅读
    STM32中<b class='flag-5'>C</b><b class='flag-5'>语言</b>的基础<b class='flag-5'>知识</b>

    详解C/C++结构、联合体和枚举的区别与内存对齐

    C语言中构造类型一共有4种,它们分别是数组、结构(struct)、共用(union)、枚举类型(enum)。
    的头像 发表于 06-08 14:38 4583次阅读
    详解<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++结构<b class='flag-5'>体</b>、联合体和<b class='flag-5'>枚举</b>的区别与内存对齐

    C语言编程必备知识合集

    电子发烧友网站提供《C语言编程必备知识合集.zip》资料免费下载
    发表于 11-21 09:34 0次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>编程<b class='flag-5'>必备</b><b class='flag-5'>知识</b>合集

    枚举有多大?c语言枚举end的作用是什么?

    枚举有多大?c语言枚举end的作用是什么? 枚举C语言
    的头像 发表于 01-19 14:19 595次阅读