枚举的讲解
在C语言中,没有内置的枚举(enum)数据类型,但我们可以使用整数类型来模拟枚举的行为。C99标准之前,C语言使用`#define`指令来定义枚举,但这种方式并不安全,因为如果枚举值发生变化,可能需要在代码中到处修改。C99标准引入了枚举类型,提供了更安全和方便的方式来定义和使用枚举。
下面是C99标准中枚举的基本使用示例:
#include <stdio.h>
// 定义一个枚举类型
enum color {
RED,
GREEN,
BLUE
};
int main() {
// 声明一个枚举变量
enum color c;
// 初始化枚举变量
c = RED;
// 打印枚举变量的值
printf("The value of c is %d\n", c);
// 枚举值的比较
if (c == GREEN) {
printf("c is GREEN\n");
}
// 枚举值的遍历
for (int i = 0; i < RED; i++) {
printf("enum value %d is %d\n", i, enum_val(i));
}
return 0;
}
// 定义一个函数返回枚举值
enum color enum_val(int i) {
return i;
}
在这个例子中,我们定义了一个名为`color`的枚举类型,它有三个成员:`RED`、`GREEN`和`BLUE`。这些成员被自动赋予整数值,`RED`通常是0,`GREEN`是1,`BLUE`是2,但这个顺序并不是固定的,除非你在定义时明确指定每个成员的值。
我们声明了一个`enum color`类型的变量`c`,并将其初始化为`RED`。然后,我们打印了`c`的值,并进行了比较操作。我们还演示了如何通过一个函数`enum_val`来获取枚举值。
请注意,枚举成员的值是整数,所以你可以使用整数值来表示它们,也可以在for循环中使用枚举成员的值来遍历枚举类型。
C99标准之前的枚举定义通常是这样的:
#include <stdio.h>
// 使用 #define 定义枚举
#define RED 0
#define GREEN 1
#define BLUE 2
int main() {
// 声明一个整型变量来模拟枚举
int color;
// 初始化模拟的枚举变量
color = RED;
// 打印模拟的枚举变量的值
printf("The value of color is %d\n", color);
// 模拟枚举值的比较
if (color == GREEN) {
printf("color is GREEN\n");
}
return 0;
}
在这个例子中,我们使用`#define`指令来定义枚举值,而不是使用`enum`关键字。
这种方式在C99标准之前是常见的,但不推荐使用,因为它不够安全,容易出错。
———————————————————————————————————————————
枚举类型
枚举是默认0开始的
枚举常量 是不能更改的
但是创建的时候 给一个初始值是可以的
但是这里是0 5 6
——————————————————————————————————————————
计算器(转移表的实现)
这里不进行计算器多余的解释,这里有之前写的博客进行解释,可以看一下。
转移表回调函数实现-CSDN博客https://blog.csdn.net/Jason_from_China/article/details/136590531 ——————————————————————————————————————————
枚举实现计算器
——————————————————————————————————————————
枚举的检查类型
枚举是有类型检查的
枚举可以调试
但是#define是不能调试的
枚举常量是遵循作用域的 只能再函数内使用