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

这里我们将要讨论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;
}

揭开枚举类的面纱(Unlocking the Enumeration/enum Mystery)的更多相关文章

  1. Kotlin——中级篇(五):枚举类(Enum)、接口类(Interface)详解

    在上一章节中,详细的类(class)做了一个实例讲解,提到了类(class)的实例化.构造函数.声明.实现方式.和Java中类的区别等.但是对于Kotlin中的类的使用还远远不止那些.并且在上文中提到 ...

  2. Java:枚举类也就这么回事

    目录 一.前言 二.源自一道面试题 三.枚举的由来 四.枚举的定义形式 五.Enum类里有啥? 1.唯一的构造器 2.重要的方法们 3.凭空出现的values()方法 六.反编译枚举类 七.枚举类实现 ...

  3. 0029 Java学习笔记-面向对象-枚举类

    可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...

  4. python基础——枚举类

    python基础——枚举类 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好处是简单 ...

  5. java枚举类

    enum关键字用于定义枚举类,若枚举只有一个成员, 则可以作为一种单例模式的实现方式.   枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰. 枚举类的使用 priva ...

  6. 【JAVA】浅谈java枚举类

    一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...

  7. Enum枚举类|注解Annotation

    Enum枚举类 ①枚举类和普通类的差别: 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类 枚举类的构造器仅仅能使用 private 訪问控制符 枚举类的全部实例必须在枚举类中 ...

  8. Java笔记:枚举类

    1.一个类的实例是有限且固定的,这个类称为枚举类.比如季节类,只有四个对象(春.夏.秋.冬) 2.手动实现一个枚举类(1)通过private将构造器隐藏起来(2)把这个类的所有可能实例都使用priva ...

  9. Java 枚举类详解

    1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...

随机推荐

  1. git与svn对比

    git 与 svn 对比 git的使用不需要联机 SVN集中式版本控制:每个人的版本都是提交到服务器,服务器坏了就雪崩.git分布式版本控制:  安全,每人本地有个版本库,每个人都可以充当‘服务器 它 ...

  2. 菜单栏始终浮动在顶部 js

    //菜单栏始终浮动在顶部var navH = $(".trade-tab-bot").offset().top;//获取要定位元素距离浏览器顶部的距离//滚动条事件$(window ...

  3. [转]Android重力感应开发

    http://blog.csdn.net/mad1989/article/details/20848181 一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提 ...

  4. [ES6] Rest Parameter

    Problem with the ES5: function displayTags(){ for (let i in arguments) { let tag = arguments[i]; _ad ...

  5. js中时间戳与日期转换-js日期操作

    常用的一些日期操作. 用js获取一个时间戳. <script type="text/javascript"> var date = new Date();//当前时间 ...

  6. USB HID介绍

    HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容. USB设备描述符-概述 当插入USB设备后,主机会向设备请求各种描述符来识别设备.那什么是设 ...

  7. C#、.NET和ASP.NET三者之间的区别

    刚毕业后出去找工作面试的时候就遇到这个问题!.回答不上来.回来网上查的如下: 那么 .NET.C#和ASP.NET这三者之间区别不清楚,到底它们之间有什么联系呢? 1..NET是一个平台,一个抽象的平 ...

  8. Linux操作系统分析__破解操作系统的奥秘

    学号:SA12226343  姓名:sunhongbo 一.操作系统工作的基础 存储程序计算机和堆栈(函数调用堆栈)机制以及中断机制是操作系统工作的基础. 现代计算机仍采用存储程序计算机的结构体系和工 ...

  9. .NET Linq获取一个集合中的一个或多个属性,赋值到新的类对象

    //得到自定义的list var list = schoolGradeClassModelList.Select(x => new DropDownListData() { DataTextFi ...

  10. MYSQL显示数据库内每个表拥有的触发器

    一  所有数据库->所有触发器: SELECT * FROM information_schema.triggers; 二  当前数据库->当前所有触发器(假设当前数据库为gmvcs_ba ...