什么是枚举【详解】

2023-05-16

请添加图片描述

本期介绍🍖

主要介绍:什么是枚举,枚举是如何定义、初始化的,以及枚举到底如何使用,还有枚举这种语法存在的优点有那些👀。


文章目录

    • 一、什么是枚举🍖
    • 二、枚举类型的定义🍖
    • 三、枚举的使用🍖
    • 四、枚举的优点🍖


一、什么是枚举🍖

  在C/C++中枚举是一个被命名的整型常数的集合。在实际应用中我们经常把能够且便于一一列举的类型用枚举来表示。就比如:一周的星期、性别、月份……


二、枚举类型的定义🍖

  枚举类型的定义与结构体类似,不同在于结构体每个成员之间是用隔开的,而枚举成员之间却是用分隔。如下所示:

enum Color
{
	Red,
	Yellow,
	Blue
};

  其中enum为枚举类型的关键字enum Color为枚举的类型,而{}中的内容为枚举类型可能的取值,也称为:枚举常量。这些可能的取值都是有值的,在未初始化的情况下,默认从0开始依次递增1。当然我们可以在其定义的时候初始化一些值,而那些未初始化的部分会从最后一个初始化数开始向后依次递增1。如下所示:

在这里插入图片描述
在这里插入图片描述


三、枚举的使用🍖

在这里插入图片描述

  注意:在给枚举变量赋值的时候,只能用枚举常量(也就是这里的Red、Yellow、Blue),不能使用这些常量所对应的值(也就是0、1、2),否则会由于类型的差异而导致编译不过的情况。


四、枚举的优点🍖

  我们其实可以使用#define定义常量,为什么非要使用枚举?

  1. 增加代码的可读性和可移植性
  2. 与#define定义的标识符相比,枚举常量更加严谨(因为枚举类型具有类型检查)
  3. 防止命名污染
  4. 便于调试(#define定义的标识符在编译期间就会被全部替换掉,是无法在调试时准确监视到的,但枚举却可以)
  5. 使用方便,可以一次定义多个常量

在这里插入图片描述

这份博客👍如果对你有帮助,给博主一个免费的点赞以示鼓励欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!
如果有什么疑问或不同的见解,欢迎评论区留言欧👀。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是枚举【详解】 的相关文章

  • ROS实现代码及已编译代码运行步骤

    目录 一 实现一个代码步骤1 C 43 43 代码实现步骤2 python代码实现步骤 二 已编译代码运行步骤 一 实现一个代码步骤 1 C 43 43 代码实现步骤 在catkin ws src 内创建功能包的步骤 其实可以任意创建工作空
  • 基于ROS的PX4+Gazebo仿真——PX4一键起飞及飞行控制

    一键起飞 参考及引用 1 CSDN博主 战争果子 的原创文章 xff0c 遵循CC 4 0 BY SA版权协议 原文 xff1a https blog csdn net EnthusiasmZing article details 7916
  • RT-Thread相比较于Freertos的优势在哪里

  • Up Board安装ROS及mavros

    Up Board安装ROS及mavros 目录 Up Board安装ROS及mavros一 在Up Board安装Ubuntu系统1 材料准备2 拿一个空的U盘作为驱动盘为Up Board安装系统3 安装Ubuntu系统 二 在Ubuntu
  • Unity和ROS通讯的机械臂

    Unity和ROS之间的通讯包 目录 Unity和ROS之间的通讯包参考及引用1 Github源码地址 Unity和ROS之间的通讯 一个ROS包 xff08 用于接收从Unity场景发送的ROS消息 xff09 两个导入到Unity的包
  • 虚拟机Ubuntu磁盘扩容个人记录

    虚拟机Ubuntu磁盘扩容个人记录 一 修改扩展大小 修改成功以后 xff0c 打开虚拟机Ubuntu 二 进入Ubuntu修改 打开终端 xff0c 输入 sudo gparted 右键点击后更改大小 然后确定修改 最后 xff0c 终端
  • 下载源码包后在Ubuntu编译

    下载源码包后在Ubuntu编译 学习使用Ubuntu过程中 xff0c 不免会尝试跑一遍别人的代码 xff0c 这时候要知道如何将源码下载后进行编译及运行 本文与以下两篇博客相关 xff1a ROS工作空间和功能包 ROS实现代码及已编译代
  • 利用科大讯飞语音合成模块SDK实现ROS语音交互

    利用科大讯飞语音合成模块SDK实现ROS语音交互 本文内容与CSDN博主 AI Chen 的原创文章相同 xff0c 可以直接参考原文 xff1a https blog csdn net qq 39400324 article detail
  • tts_subscribe.cpp代码

    tts subscribe cpp span class token comment 语音合成 xff08 Text To Speech xff0c TTS xff09 技术能够自动将任意文字实时转换为连续的 自然语音 xff0c 是一种能
  • FreeRTOS线程安全、中断安全的printf实现方式

    文章目录 前言一 问题描述二 解决方案1 线程安全 中断安全的printf实现方式 总结参考 前言 利用串口对基于FreeRTOS的多任务程序调试过程中 xff0c 时常出现数据交叉打印 xff0c 甚至出现乱码现象 这是因为通常情况下 x
  • 结构体空间对齐和结构体数组的使用

    今天在学习linux的platform总线时 xff0c 设备对资源的描述用到了结构体数组 xff0c 以前从没见过 如下 很明显用结构体数组主要是用来给一系列相同类型的结构体赋值 xff0c 主要是来看内存分配问题 首先是结构体的内存分配
  • ubuntu:出现bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录 解决方法

    如图 xff0c 解决方法如下 xff1a 打开虚拟机终端 xff0c 输入 gedit bashrc 弹出一个文件 xff0c 找到最后一行 xff0c 如图所示 然后我roscore了一下 xff0c 看了一下我的ros版本 xff1a
  • STC单片机仿三菱FX2n方案 hex烧录进去就可以当plc用

    STC单片机仿三菱FX2n方案 hex烧录进去就可以当plc用 xff0c 成本低方便快捷id 61 643520282241 amp
  • 西门子S7-1200系列PLC定时器指令

    定时器指令是在PLC程序设计中非常常见的一种指令 xff0c S7 1200系列PLC的定时器的指令格式及使用方式都不同于S7 200系列PLC S7 1200系列PLC的采用的是IEC标准的定时器指令 xff0c 用户程序中可以使用的定时
  • 0基础学springboot之对数据库的增删改查

    1 xff1a 使用的是mysql数据库 xff0c 数据库中的表为student 2 xff1a 创建springboot项目 xff0c 在pom文件里加载mysql依赖 lt dependency gt lt groupId gt m
  • 平衡车Car_Balance(一)——电机

    目录 一 电机简要概述 二 常见电机种类 1 直流有刷电机 xff08 BDC xff0c 最最最常见的电机 xff09 2 直流无刷电机 xff08 BLDC xff09 3 舵机 4 步进电机 三 平衡小车选用电机及需要关注的参数 1
  • 用matlab进行xlsx表格的提取和操作

    用matlab进行xlsx表格的提取和操作 一 数据的提取二 垃圾数据的清除三 数据的分类四 图像的绘制 在学习数学建模时 xff0c 我们会碰到大数据的问题 xff0c 这类问题通常要进行数据预处理 xff0c 这是我用matlab进行预
  • Android 开发艺术探索笔记(5,我的头条面试经历分享

    public Messenger Handler target mTarget 61 target getIMessenger public Messenger IBinder target mTarget 61 IMessenger St

随机推荐

  • 穿越机F4飞控F405代码pcb文件,原理图

    穿越机F4飞控F405代码pcb文件 原理图 xff0c 源代码 xff0c 穿越机无人机 xff0c F4V3飞控PCB资料 xff0c AD格式原理图 PCB图 Bo可直接打板id 61 659104114509 amp
  • 【AD20学习笔记】网表导入及模块化布局设计(1)

    7 20 今天写完 本章快捷键总结 xff08 绿色是自己设的 xff09 Q可以切换单位 xff08 但是要右击按着欸 xff0c 有一定失败概率 xff09 JC可以查元件位号 F6可以进行矩形的元件摆放 按shift 是可以多选 TM
  • 【五一创作】微服务学习笔记

    微服务学习 写一个服务的步骤一般可以有 1 xff0c 在pom xml文件中导入相关的依赖 2 xff0c 编写相关的配置类 xff08 application yml xff09 配置类编写的三步 1 服务的端口 2 服务的名字 3 服
  • Win10启动或关闭windows功能,一直显示“请稍后”该怎么办?(win10请稍后)

    解决方法一 xff1a 1 按下 Win 43 R 组合键呼出运行 xff0c 输入 xff1a services msc 点击确定打开服务 xff1b 2 在服务界面中双击打开 Windows Modules Installer xff0
  • ROS2 CmakeList如何正确引入第三方.so文件

    在使用ros2开发的时候难免会需要引入第三方的厂家提供的 so文件库 注意这里说的并不是自己写的cpp文件转成 so然后再自己的工程项目中使用 例如经常使用的ICANCmd h头文件和libCanCmd so库还有onnx推理的时候onnx
  • 实战篇 | 基于freeRTOS的多任务事件传输

    之前分享了很多关于freeRTOS的知识 xff0c 那么我们怎么在实战中去写代码呢 xff1f 本篇文章重在对基于freeRTOS的架构代码的解析 整个功能如下图 xff1a 为什么要用freeRTOS 在实际项目中 xff0c 如果程序
  • 浅谈安卓UI设计,android串口工具apk

    lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt android support constraint ConstraintLayout xmlns android 61 h
  • 四轴飞行器-基于STM32微控制器(电子入门必看)

    nbsp nbsp nbsp nbsp nbsp nbsp 从开始做微型多旋翼飞行器以来 我经常和一大批有着同样爱好的朋友们互相交流 他们走着我曾经走过的路 也经历着我所经历过的坎坷 无论我在何坛何群 总有朋友追问着很多重复的问题 未能全部
  • 基于stm32cubeMX的平衡小车HAL库+蓝牙遥控+直立环+速度环+转向环 STM32F103C8T6

    基于stm32cubeMX的平衡小车HAL库 蓝牙遥控 直立环 速度环 转向环 一 代码工程链接 我的平衡车代码 HAL库 cubeMX配置 主控stm32f103 程序代码容易移植 建议先看完正文 工程 平衡车工程 PCB 代码程序 蓝牙
  • Java日常学习:运用链栈实现进制转换

    一 简单介绍 今天我就给大家带来java中的链栈实现进制转换的方法 xff0c 该方法也是在学习栈的时候发现的 xff0c 我们都知道在进制转换的时候有很多种方法 xff0c 其中最常用也最容易理解的就是除基倒取余法 xff0c 那么我们先
  • CLion解决中文输出乱码(2022年最新教程)

    CLion是个很好用的IDE xff0c 但是在用CLion写C C 43 43 代码时 xff0c 中文输出会是乱码 xff0c 此前博主也找了很多资料 xff0c 但是网上的教程大多都是脱裤子放屁 xff0c 治标不治本 xff0c 在
  • 【Linux网络编程】TCP并发服务器的实现(IO多路复用select)

    文章目录 一 服务器模型1 1 服务器概念1 2 TCP并发服务器的意义1 3 实现TCP并发服务器的方式 二 使用IO多路复用实现TCP并发服务器优势三 select函数四 TCP并发服务器的构建4 1 创建套接字4 2 填写服务器网络信
  • 树莓派解决cannot currently show the desktop最优法

    最近在搞树莓派前面的步骤都轻轻松松的解决了这个问题卡了我很久 这个是解决之后的效果 xff0c 我使用改分辨率用了很多办法这个办法解决的效率最快 直接在下载好文件的解决 1 将有sd卡的读卡器插入 2 在config txt文件中加入四句话
  • 十、C++中的类 class与struct的区别

    面向对象程序设计 xff0c 需要诸如类和对象这样的概念 C 43 43 支持面向过程 基于对象 面向对象 泛型编程四种 C语言不支持面向对象编程 类是一种将数据和函数组织在一起的方式 一个函数参数过多 xff0c 代码不好维护 xff0c
  • 飞控开发--气压计MS5611

    ms5611简介 xff1a 官方给出的最大分辨率 xff1a 10cm 工作电压 xff1a 1 8v 3 6v 气压 AD 精度 xff1a 24位 工作环境 xff1a xff0d 40 43 85 C xff0c 10 1200mb
  • 如何使用JavaScript将Set转换为Array?

    如何使用JavaScript将Set转换为Array xff1f 下面本篇文章家里给大家介绍一下在JavaScript中将Set转换为Array的方法 xff0c 希望对大家有所帮助 在JavaScript中 xff0c 想要将Set xf
  • 如何在Markdown中插入图片并顺利共享

    使用PicGo 43 GitHub搭建图床 实现便捷的Markdown图片管理 昨天在呕心沥血写 xff08 搬 xff09 完我的第一篇技术分享博文m1 使用 VMware 安装 CentOS7 并部署 k8s 高可用集群之后 xff0c
  • 海康威视网络摄像头sdk的开发(Demo的使用)指南

    如果您是想实现海康sdk包的Demo实例中MFC的分功能 xff0c 那么请慢慢看 xff0c 这篇文章百分之九十九可以帮你实现 提醒 xff1a 内容来自网络和自己实际操作 xff0c 如有问题请联系hww168 64 yeah net
  • Proxy反向代理解决跨域问题

    一 问题的产生 在项目开发过程中遇到了一个问题 xff0c 访问图片与访问其他的数据的服务器不是同一个 xff0c 虽然后台已经将两个服务器合并到一个 xff0c 但是前台配置好后访问就会产生了一个问题 xff0c 具体报错如下 xff1a
  • 什么是枚举【详解】

    本期介绍 x1f356 主要介绍 xff1a 什么是枚举 xff0c 枚举是如何定义 初始化的 xff0c 以及枚举到底如何使用 xff0c 还有枚举这种语法存在的优点有那些 x1f440 文章目录 一 什么是枚举 x1f356 二 枚举类