枚举的含义、表示、规范、运用

这篇具有很好参考价值的文章主要介绍了枚举的含义、表示、规范、运用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

枚举的含义

一组有共同特性的数据集合

枚举的表示

由关键字enum和枚举类型名称组成

枚举的规范

先声明枚举类型再定义枚举变量

 enum DAY//先声明枚举类型
{
  MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
 };
 enum DAY day;//再定义枚举变量

声明枚举类型的同时定义枚举变量

 enum DAY//声明枚举类型
{
  MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
 }day;//定义枚举变量

不指定枚举类型名而直接定义枚举变量

 enum//不指定枚举类型名
{
  MON=1,TUE,WED,THU,FRI,SAT,SUN//枚举成员变量
 }day;//定义枚举变量

用typedef定义枚举类型别名

第一种

 typedef enum workday//声明枚举类型
{
  saturday,
  sunday = 0,
  monday,
  tuesday,
  wednesday,
  thursday,
  friday
 } workday;//用typedef定义枚举类型别名
 workday today, tomorrow;//定义枚举变量

第二种

 typedef enum workday//声明枚举类型
{
  saturday,
  sunday = 0,
  monday,
  tuesday,
  wednesday,
  thursday,
  friday
 };//不定义枚举类型别名
 workday today, tomorrow;//定义枚举变量

枚举变量的初始化

先声明枚举变量再赋值给枚举变量

#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN};//声明枚举类型
 void main()//主函数
{  
  enum DAY yesterday, today, tomorrow;//声明枚举变量
  yesterday = MON;//赋值给枚举变量 下同
  today     = TUE;
  tomorrow  = WED;
  printf("%d %d %d \n", yesterday, today, tomorrow);
 }
1
2
3

解释以上:由以上输出结果可知,枚举类型内第一个枚举成员变量的默认值为整型的0,如果第一个枚举成员变量设置了某值,那么以这个设置值为准,后续枚举成员变量的值在前一个枚举成员变量上加1。文章来源地址https://www.toymoban.com/news/detail-808660.html

声明枚举变量同时赋值给枚举变量

#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN};//声明枚举类型
 void main()//主函数
{
  enum DAY yesterday = MON, today = TUE,tomorrow = WED;//声明枚举变量同时赋值给枚举变量
  printf("%d %d %d \n", yesterday, today, tomorrow);
 }
1
2
3

声明枚举类型同时定义枚举变量再赋值给枚举变量

#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday,today,tomorrow;//声明枚举类型同时定义枚举变量
 void main()//主函数
{
  yesterday = MON;//赋值给枚举变量 下同
  today     = TUE;
  tomorrow  = WED;
  printf("%d %d %d \n", yesterday, today, tomorrow);
 }
1
2
3

声明枚举类型定义枚举变量赋值给枚举变量同时进行

#include<stdio.h>
enum DAY {MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday  = MON,today = TUE,tomorrow = WED;//声明枚举类型定义枚举变量赋值给枚举变量同时进行
 void main()//主函数
{
  printf("%d %d %d \n", yesterday, today, tomorrow);
 }
1
2
3

枚举的运用

将整数型转换为枚举型

#include <stdio.h>
#include <stdlib.h>
 int main()
{ 
  enum day//声明枚举类型
 {
   saturday,
   sunday,
   monday,
   tuesday,
   wednesday,
   thursday,
   friday
  } workday;
   int a = 1;
   enum day weekend;//定义枚举变量
   weekend = ( enum day ) a;//将整数型变量转换为枚举变量
   //weekend = a; //错误
   printf("weekend:%d",weekend);
   return 0;
  }
weekend:1

在Switch语句中使用

#include <stdio.h>
#include <stdlib.h>
 int main()
{
  enum color { red=1, green, blue };//声明枚举类型
  enum  color favorite_color;//定义枚举变量
  /* 用户输入数字来选择颜色 */
  printf("请输入你喜欢的颜色: (1.red, 2.green, 3.blue): ");
  scanf("%u",&favorite_color);
  /* 输出结果 */
  switch (favorite_color)
 {
   case red:
            printf("你喜欢的颜色是红色");
            break;
   case green:
            printf("你喜欢的颜色是绿色");
            break;
   case blue:
            printf("你喜欢的颜色是蓝色");
            break;
   default:
            printf("你没有选择你喜欢的颜色");
  }
  return 0;
 }
请输入你喜欢的颜色: (1.red,2.green,3.blue):1
你喜欢的颜色是红色

作为指针变量

计算字节大小

#include <stdio.h>
 enum escapes//声明枚举类型
{ 
  BELL      = '\a',
  BACKSPACE = '\b',
  HTAB      = '\t',
  RETURN    = '\r',
  NEWLINE   = '\n', 
  VTAB      = '\v',
  SPACE     = ' '
 };
 enum BOOLEAN { FALSE = 0, TRUE } match_flag;//定义枚举变量
 void main()
{
  printf("%d bytes \n", sizeof(enum escapes));//4 bytes
  printf("%d bytes \n", sizeof(escapes));//4 bytes
  printf("%d bytes \n", sizeof(enum BOOLEAN));//4 bytes
  printf("%d bytes \n", sizeof(BOOLEAN));//4 bytes
  printf("%d bytes \n", sizeof(match_flag));//4 bytes
  printf("%d bytes \n", sizeof(SPACE));//4 bytes
  printf("%d bytes \n", sizeof(NEWLINE));//4 bytes
  printf("%d bytes \n", sizeof(FALSE));//4 bytes
  printf("%d bytes \n", sizeof(0));//4 bytes
 }
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes
4 bytes

到了这里,关于枚举的含义、表示、规范、运用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM 嵌入式 编译系列 4.2 -- GCC 链接规范 extern “C“ 介绍】

    请阅读 【ARM GCC 编译专栏导读】 上篇文章:ARM 嵌入式 编译系列 4.1 – GCC 编译属性 likely与unlikely 学习 下篇文章:ARM 嵌入式 编译系列 5 – GCC 内建函数 __builtin 介绍 extern “C” 是一种链接规范,它用于告诉C++编译器按照C语言的方式来链接代码。这个主要用于在C++代码

    2024年02月13日
    浏览(53)
  • (嵌入式c语言)c语言编译常见错误

    预处理(gcc -E -o)-编译(gcc -S -o)-汇编(gcc -c -o)-链接(gcc -o) 将代码中的define 和 include替换成实体码  define和include不是,是在编译过程中处理的。 包含 #include 包含头文件 宏 #define 宏  替换  不会进行语法检查 #define 宏  宏体   宏体要加括号 #define ABC 

    2024年02月11日
    浏览(40)
  • 【嵌入式——C语言】共用体

    定义 :共用体和结构体类似,也是一种构造类型的数据结构,在进行某些算法时,需要使用几种不同类型的变量存到同一段内存单元中,几个变量所使用空间相互重叠,这几个不同的变量共同占用一段内存的结构,被称作共用体类型结构。 共用体的大小是其占内存长度最大

    2024年01月22日
    浏览(47)
  • 【面试集锦 - 嵌入式软件 - C语言】

    指针函数(Pointer to a Function)和函数指针(Function Pointer)是在C和C++中经常使用的概念,它们虽然名称相似,但是在用法和作用上有一些区别。 指针函数 指针函数是指返回值为指针类型的函数。换句话说,它是一个函数,其返回类型是一个指针。指针函数可以用来实现动态分

    2024年02月07日
    浏览(51)
  • 嵌入式C语言(入门必看)

          目录 STM32的数据类型 const static volatile extern  struct结构体 enum  typedef #define 回调函数 #ifdef 、#ifndef、#else  、#if     嵌入式开发中既有底层硬件的开发又涉及上层应用的开发,即涉及系统的硬件和软件,C语言既具有汇编语言操作底层的优势,又

    2024年01月17日
    浏览(44)
  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(56)
  • 嵌入式C语言基础(STM32)

    前言:一条混迹嵌入式3年的老咸鱼,想到自己第一次接触到stm32的库函数时,c语言稀碎,痛不欲生的场景,该文章为萌新指条明路。 位操作在嵌入式中常用于直接对芯片的寄存器进行操作,当时作为初学者的我看着一脸懵逼,至于为什么这样修改,下面好好分析一下。  一

    2024年02月02日
    浏览(56)
  • 嵌入式学习之C语言指针部分复习

    今天主要把C语言的指针部分再次认真的复习了一下,对于指针的整体框架有了更加深刻的理解,特别要重点区分函数指针,指针函数,数组指针,指针数组部分,对于这部分的应用非常重要,而且C语言指针部分是面试的重中之重,所以要加强练习才行。 今天的学习是充满动

    2024年02月12日
    浏览(38)
  • 适合嵌入式C语言静态代码分析的工具

    收集了几个嵌入式C语言静态代码分析工具: Polyspace:Polyspace是MathWorks公司的一款静态代码分析工具,可以用于嵌入式C语言程序的静态分析。它可以检测代码中的缺陷、死代码、未定义行为等问题,并且支持多种编译器和操作系统。 LDRA:LDRA是一款商业化的静态代码分析工具

    2024年02月11日
    浏览(79)
  • 嵌入式深度学习语音分离降噪C语言实现

        加我微信hezkz17进数字音频系统研究开发交流答疑 一 深度学习在语音分离中的具体应用? 深度学习在语音分离中有多种具体应用。其中最常见的是使用深度神经网络(DNN)或卷积神经网络(CNN)进行语音分离任务。 1 一种应用是源分离,它旨在从混合语音信号中分离出单

    2024年02月13日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包