转载自https://blog.csdn.net/u013591613/article/details/71215000

C_enum(枚举)可以没有枚举名

如果声明枚举类型时没有指定枚举名,其作用就和#define类似,比如以下代码:

enum {
STATION_IDLE = 0,
STATION_CONNECTING,
STATION_WRONG_PASSWORD,
STATION_NO_AP_FOUND,
STATION_CONNECT_FAIL,
STATION_GOT_IP
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里声明了一个枚举类型确没有指定其枚举名,那么它就相当于用#define定义了六个名称和其对应的值,从0开始赋值每次加1,相当于:

#define     STATION_IDLE = 0;
#define STATION_CONNECTING = 1;
#define STATION_WRONG_PASSWORD = 2;
#define STATION_NO_AP_FOUND = 3;
#define STATION_CONNECT_FAIL = 4;
#define STATION_GOT_IP = 5;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

只不过eunm类型表示的是一个确定的值,而这里#define了六个值,可见如果要表示同一个事件的不同反馈status,使用这种没有枚举名的枚举效果更好。

c++之enum(枚举)可以没有枚举名的更多相关文章

  1. 枚举类:用enum关键字来定义一个枚举类

    1)枚举类的两种定义方法 1>通过构造器 public enum Grade{ A("A", "90-100"),B("B",&quo ...

  2. Java枚举enum以及应用:枚举实现单例模式

    枚举作为一个常规的语言概念,一直到Java5才诞生不得不说有点奇怪,以至于到现在为止很多程序员仍然更喜欢用static final的形式去命名常量而不使用,一般情况下,Java程序员用这种方式去实现枚 ...

  3. c++11 实现枚举值到枚举名的转换

    效果 ``` ENUM_DEFINE ( Color, Red, Blue, ) EnumHelper(Color::Red) -> "Red" EnumHelper(Col ...

  4. EnumHelper.cs枚举助手(枚举描述信息多语言支持)C#

    C#里面经常会用到枚举类型,枚举是值类型对象,如果你想用枚举类型的多属性特性,或者你想在MVC页面上通过简单的值类型转换,将某字段值所代表的含义转换为文字显示,这时候必须要将枚举扩展,是它支持文本描述 ...

  5. c语言的枚举(遍历枚举)与数据类型总结

    一.枚举的概念 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数.当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型. 比如,你可以用一个枚举类型的变量来表示季节, ...

  6. 使用EF自带的EntityState枚举和自定义枚举实现单个和多个实体的增删改查

    本文目录 使用EntityState枚举实现单个实体的增/删/改 增加:DbSet.Add = > EntityState.Added 标记实体为未改变:EntityState.Unchange ...

  7. 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类

    关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...

  8. Day 12:枚举值、枚举类

    jdk1.5新特性之-----枚举 问题:某些方法所接收的数据必须是在固定范围之内的,  解决方案: 这时候我们的解决方案就是自定义一个类,然后是私有化构造函数,在自定义类中创建本类的对象对外使用. ...

  9. Java Enum使用演示样品枚举

    package cn.edu.shu.web.util; /** * * <p> * ClassName FileType * </p> * <p> * Descr ...

随机推荐

  1. C# 中使用锁防止多线程冲突

    在编程的时候经常会用到多线程,有时候如果多线程操作同一个资源就会导致冲突,.NET提供了多种方法来防止冲突发生,这里讲下Mutex 该类位于System.Threading命名空间,常用的方式是这样: ...

  2. AndroidStudio查看无用的资源文件;

    1.打开需要查看的项目,选择AS上方标题栏的Analyze选项: 2.选择 Run Inspection by Name 3.在弹出框内输入 unused resources 4.筛选你需要查看的资源 ...

  3. Echarts动态加载饼状图的实例

    一.引入echarts.js文件(下载页:http://echarts.baidu.com/download.html) 二.HTML代码: <div style="width: 10 ...

  4. bat文件去括号

    @Echo Off&SetLocal ENABLEDELAYEDEXPANSION FOR %%a in (*) do ( set "name=%%a" set " ...

  5. 模拟select控件,css模拟下拉

    <!DOCTYPE html > <head>     <meta http-equiv="Content-Type" content="t ...

  6. day24类的继承

    类的继承1 什么是继承    继承一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类\基类\超类    python中继承的特点:        1. 子类可以遗传/重用父类的属性   ...

  7. 将控制台信息重新导向到JTextArea

    package com.function; import java.io.FileOutputStream; import java.io.IOException; import java.io.Ou ...

  8. String和get

    在ch4的作业中暴露出了我不懂的一些问题,主要是和String有关的定义和头文件以及和get有关的函数. String 在C++中如果想定义字符串型,即String a:则需要用到头文件<str ...

  9. Maven概念模型

    两个核心 1.依懒管理:对jar包管理 2.项目构建管理:通过命令进行项目构建管理

  10. python大法好——

    1.字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. Python的字符串内建函数 Python 的字符串常用内建函数如下: 1.大小写转换: & ...