未命名的枚举类型
在创建枚举类型时,可以不指定标记(类型名),这样就没有枚举类型名了。
基本语法
enum {red, orange, yellow, green, blue, indigo, violet} shirt_color;
这个语句:
- 定义了一个未命名的枚举类型,枚举器包含从
red到violet。 - 同时声明了该未命名类型的变量
shirt_color。
使用方式
可以用通常的方式给变量赋值:
shirt_color = blue;
核心限制
未命名枚举类型的主要限制是:必须在定义该类型的同一条语句中声明它的所有变量。因为类型没有名字,后续无法再声明新的该类型变量。
代码示例
#include <stdio.h>
int main(void)
{
enum {Monday = 5, Tuesday = 4, Wednesday, Thursday = 10, Friday = 3, Saturday, Sunday} today;
today = Monday;
return 0;
}Code language: PHP (php)
对比:命名 vs 未命名
| 特性 | 命名枚举 | 未命名枚举 |
|---|---|---|
| 类型名 | 有(如 enum Weekday) | 无 |
| 后续声明变量 | 可以(enum Weekday w;) | 不可以 |
| 适用场景 | 需要多处使用该类型 | 仅临时使用、变量数量固定 |
| 代码可读性 | 高 | 较低 |