D语言中的枚举类型

枚举类型

	枚举声明:
		enum 标志符 枚举体
		enum 枚举体
		enum 标志符 : 枚举基本类型 枚举体
		enum 枚举基本类型 : 枚举体

	枚举基本类型:
		类型

	枚举体:
		;
		{ 多个枚举成员 }

	多个枚举成员:
		枚举成员
		枚举成员 ,
		枚举成员 , 多个枚举成员

	枚举成员:
		标志符
		标志符 = 表达式
	EnumDeclaration:
		enum Identifier EnumBody
		enum EnumBody
		enum identifier : EnumBaseType EnumBody
		enum EnumBaseType : EnumBody

	EnumBaseType:
		Type

	EnumBody:
		;
		{ EnumMembers }

	EnumMembers:
		EnumMember
		EnumMember ,
		EnumMember , EnumMembers

	EnumMember:
		Identifier
		Identifier = Expression
	
枚举用来定义一组相关的整数常量。

如果指定了 enum 标志符多个枚举成员 就在 enum 标志符 的作用域内被声明。enum 标志符 声明了一个新类型。

如果不指定 enum 标志符 ,则枚举称为 匿名枚举多个枚举成员枚举声明 出现的作用域内被声明。没有新类型被创建;多个枚举成员 的类型是 枚举基本类型

枚举基本类型 是枚举的基本类型。它必须是整数类型。如果忽略,默认为 int

	enum { A, B, C }	// 匿名枚举
	
定义常量 A=0、B=1、C=2 :
	const int A = 0;
	const int B = 1;
	const int C = 2;
	
等价于:
	enum X { A, B, C }	// 命名枚举
	
这定义了新的类型 X ,拥有值 X.A=0、X.B=1、X.C=2 。

命名枚举成员可以被隐式转换为整数类型,但是整数类型不能被隐式转换为枚举类型。

枚举必须至少拥有一个成员。

如果枚举成员被赋予一个 表达式 ,则镇各成员的值就是 表达式 的结果。表达式 必须在编译时可以被决定。后续的没有 表达式 的枚举成员的值是前一个成员加一。

	enum { A, B = 5+7, C, D = 8, E }
	
这令 A=0、B=12、C=13、D=8、E=9。

枚举的属性

	.min			枚举的最小值
	.max			枚举的最大值
	.sizeof			存储枚举值所需要的存储器大小

	例如:

	X.min			是 X.A
	X.max			是 X.C
	X.sizeof			等价于 int.sizeof

枚举的初始化

如果没有显式初始化,枚举变量的值被初始化为第一个枚举成员的值。
	enum X { A=3, B, C }
	X x;		// x 被初始化为 3
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值