当前位置: 首页 > news >正文

揭开枚举类的面纱(Unlocking the Enumeration/enum Mystery)

枚举给用户定义固定数据组提供了方便。枚举类就是一系列常量整型值,这也就意味着枚举类型不能被修改。

这里我们将要讨论C语言中枚举类型的用法和限制。

枚举通过枚举关键值定义,类似结构体定义

语法(Syntax):

enum tagname{CONST1=1,CONST2,…} enumVariable;

tagname枚举类型名,这一项可以省略。

{CONST1=1,CONST2,…}一组代替常量值的字符串,每个字符串对应一个整型数据,整形数据从0开始,第二个是1,等等。除非使用者自己定义类如CONST1=1,否则,字符串的序号就是字符串对应的整形值。如果用户自己指定字符串对应的整型值,那它后面的字符串所对应的整形值就是跟着前面的连续值。说起来不清楚,举个例子,CONST2=6,这个元素后面的元素的值就是相应的7,8,9等等。

enumVariable,枚举类型的变量列表。枚举类型的变量是整型的,除了枚举常量,这些变量可以被赋值任何整型数据。这个定义也是可选的,像结构体一样的,也可以在后面程序中定义:

enum tagname enumVariable;

下面是枚举类型使用范例:

#include <stdio.h>
 
//Defining the enum
enum week
{
MONDAY= -1,TUESDAY,WEDNESDAY,THURSDAY=6,FRIDAY,SATURDAY,SUNDAY
};
 
int main(void)
{
    //Declaring an enum in the program
    enum week day=FRIDAY;
     
    switch(day)
    {
        case MONDAY:
        printf("Monday Sucks");
        break;
         
        case SATURDAY:
        printf("Weekends are fun");
        break;
         
        case SUNDAY:
        printf("Weekends are fun");
        break;
         
        default:
        printf("It depends on the mood :D %d",day);
        break;
    }
     
    return 0;
}

转载于:https://www.cnblogs.com/programnote/p/4727795.html

相关文章:

  • 盒模型一二三(一):盒世界,知几何
  • 利用工厂模式实现Dao层和Service的解耦
  • [LeetCode]Multiply Strings
  • 11g rac配置scan ip
  • jQuery属性,方法操作
  • 深入理解Linux内核-信号
  • 1.1JVM
  • 十进制转二进制
  • Android 工作随记
  • CRB and String
  • CoCoaPods
  • Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
  • Hexo 个人博客搭建
  • 2.4-Apache访问控制
  • Excel文档上传
  • [译] 怎样写一个基础的编译器
  • C++11: atomic 头文件
  • Date型的使用
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • java概述
  • js ES6 求数组的交集,并集,还有差集
  • js如何打印object对象
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mysql常用命令汇总
  • nfs客户端进程变D,延伸linux的lock
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PhantomJS 安装
  • WePY 在小程序性能调优上做出的探究
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云前端周刊 - 第 26 期
  • 二维平面内的碰撞检测【一】
  • 反思总结然后整装待发
  • 服务器从安装到部署全过程(二)
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 聊聊flink的BlobWriter
  • 排序(1):冒泡排序
  • 前端工程化(Gulp、Webpack)-webpack
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 栈实现走出迷宫(C++)
  • 转载:[译] 内容加速黑科技趣谈
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #mysql 8.0 踩坑日记
  • (ibm)Java 语言的 XPath API
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (离散数学)逻辑连接词
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)linux文件内容查看
  • (算法)Travel Information Center