未命名的枚举类型

未命名的枚举类型

在创建枚举类型时,可以不指定标记(类型名),这样就没有枚举类型名了。

基本语法

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;)不可以
适用场景需要多处使用该类型仅临时使用、变量数量固定
代码可读性高较低

Previous:
Next:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注