头图

1.枚举(enum
枚举是 C 语言的一种基本数据类型,它用处可以让数据更简洁,更易读。

如果要定义一个枚举类型,我们需要使用它的关键字:enum ,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。

/* enum 枚举关键字
*  DEMO 枚举类型名
*  mydemo 枚举变量
*  {} 括起来的是一组枚举常量
*  这里定义枚举类型的同时定义枚举变量
*/
enum DEMO {
    a, b , c, d, e, f, g
} mydemo;

此时没有给枚举常量进行赋值,因此自动默认从0开始递增,也就是说a等于0,然后b等1,以此类推,每次+1。

#include<stdio.h>

enum DEMO {
    a, b, c, d, e, f, g
} mydemo;

int main(void) {
    printf("a = %d\n",a);
    printf("b = %d\n",b);
    printf("c = %d\n",c);
    printf("d = %d\n",d);
    printf("e = %d\n",e);
    printf("f = %d\n",f);
    return 0;
}

/*  输出:
*   a = 0
*   b = 1
*   c = 2
*   d = 3
*   e = 4
*   f = 5
*/

但如果我们给其中的枚举常量进行赋初始化值,给b赋初值b=2再输出

#include<stdio.h>

enum DEMO {
    a, b = 2, c, d, e, f, g
} mydemo;

int main(void) {
    printf("a = %d\n",a);
    printf("b = %d\n",b);
    printf("c = %d\n",c);
    printf("d = %d\n",d);
    printf("e = %d\n",e);
    printf("f = %d\n",f);
    return 0;
}

/*  输出:
*   a = 0
*   b = 2
*   c = 3
*   d = 4
*   e = 5
*   f = 6
*/

2.枚举的实际使用
一星期有 7 天,假如不用枚举,我们需要使用 #define 来定义:

#define Monday  1
#define Tuesday  2
#define Wednesday  3
#define Thursday  4
#define Friday  5
#define Saturday  6
#define Sunday  7

这里看起来是不是感觉很复杂,但是如果是使用枚举,可以这样子定义:

enum DAY
{
      Monday=1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
};

这样子看起来就轻爽多了,这里需要给Monday赋一个值1,后面的枚举常量就会依次递增+1了。


屠龙少年
1 声望1 粉丝

学习两年半的嵌入式练习生。