指引网

当前位置: 主页 > 编程开发 > C >

C语言枚举类型学习笔记

来源:网络 作者:佚名 点击: 时间:2017-07-19 23:06
[摘要]  枚举类型在C语言等计算机编程语言中是一种构造数据类型[1] 。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型,下面我们一起来看几个C语言枚举类

介绍

枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值

  ​枚举类型使一种基本数据类型,用于声明一组命名的常数,当一种变量有几种可能的取值使,可以定义为枚举类型。
    ​它的值为符号常量而不是字面值,这些类型的变量实际上以整型的方式存储,这些符号名实际值都是整型值。
 
​定义方式1:

    ​enum num{first,second,third,forth};
    ​enum num num1,num2; 类似struct的定义方式。

定义方式2:

​enum {first,second,third,forth} num1,num2;

​有些时候我们可以对这些符号名指定特定的整型值,比如:
    ​enum {first=1,second=2,third,forth},未指定的值默认比前一个符号大1。但是我们并不推荐这种赋值,这样会把枚举变量和整数混在一起,反而削弱了枚举类型的字面含义。

如何使用枚举类型:

​以第一种第一方式为例,num1,num2为枚举类型变量,但是这些变量每次只能有一个值,这个值使枚举类型定义中的first、second、third、forth四种,如果有些变量值的取值有限,并且我们想尽可能通过字面意思表达出来,使用枚举类型使最合适不过了。


看一个实际的例子:

enum enumex{
        first,
        second,
        third,
        forth,
    };

    enum enumex m_enumex;
    m_enumex = first;


    switch(m_enumex)
    {
        case first:printf("firstn");break;
        case second:printf("secondn");break;
        case third:printf("thirdn");break;
        case forth:printf("forthn");break;
        default: break;
}

我们完全可以根据不同情况下m_enumex的取值来安排我们的代码。在定义enum时,最后一个逗号可加可不加,加上会看着更清楚。

------分隔线----------------------------