`
- 浏览:
221139 次
- 性别:
- 来自:
北京
-
枚举声明:
enum 枚举标记 枚举体
enum 枚举体
enum 枚举标记 :枚举基类型 枚举体
enum :枚举基类型 枚举体
枚举标记:
标识符
枚举基类型:
类型
枚举体:
;
{ 多个枚举成员 }
多个枚举成员:
单个枚举成员
单个枚举成员 ,
单个枚举成员 , 多个枚举成员
单个枚举成员:
标识符
标识符 = 赋值表达式
Type Identifier = AssignExpression 2.014
枚举声明被用来定义一组常量。 定义形式有两种:
1. 命名枚举——它有一个枚举标记。
2. 匿名枚举——它没有枚举标记。
14.1 命名枚举
命名枚举常被用来声明几个有关联的常量,并且使用一个统一的类型来组合它们。 多个枚
举成员 被声明在枚举标记的作用域内。 枚举标记 会声明出一个新的类型,而所有的那些
枚举成员 都属于该类型。
下面的例子就定义了一种新的类型 X ——它拥有值 X.A=0、X.B=1、X.C=2:
enum X { A, B, C } // 命名枚举
如果 枚举基类型 没有显示地设置,则它会被设置成 int 类型。
上面这句在2.014中被改成下面的:
If the EnumBaseType is not explicitly set, and the first EnumMember has an initializer, it is set to the type of that initializer. Otherwise, it defaults to type int. 2.014
命名枚举成员可以被隐式转换成它的 枚举基类型,不过 枚举基类型 不会被隐式转换成枚
举类型。
一个 枚举成员值 由初始化过程设定。 如果没有初始化过程,则它会被设定成前一个 枚举
成员 的值 + 1。如果它是第一个 枚举成员,那么它的值就为 0。
枚举必须至少拥有一个成员。
1.1 枚举默认的初始化过程
枚举类型的特性 .init 就是该枚举的第一个成员的值。 它也是枚举类型的默认初始化过
程。
enum X { A=3, B, C }
X x; // ax 被初始化为 3
1.2 枚举的特性
枚举特性仅对命令枚举才有效。
.init 第一个枚举成员的值
.min 枚举的最小值
.max 枚举的最大值
.sizeof 存储枚举值所需要的存储器大小
例如:
enum X { A=3, B, C }
X.min // 为 X.A
X.max // 为 X.C
X.sizeof // 等同于 int.sizeof
The EnumBaseType of named enums must support comparison in order to compute the .max and .min properties. 2.014
2 匿名枚举
如果不指定 enum 标识符,则枚举称为 匿名枚举,并且 多个枚举成员 在 枚举声明 出现
的作用域内被声明。没有新类型被创建;多个枚举成员 的类型是 枚举基类型。
枚举基类型 是枚举的基本类型。
它必须是整数类型。如果忽略,默认为 int。
2.014中上面这句被改成如下:
If omitted, the EnumMembers can have different types. Those types are given by the first of:
The Type, if present.
The type of the AssignExpression, if present.
The type of the previous EnumMember, if present.
int
enum { A, B, C } // 匿名枚举
定义了常量 A=0、B=1、C=2,所有类型都为 int。
枚举必须至少拥有一个成员。
一个 枚举成员值 由初始化过程设定。 如果没有初始化过程,则它会被设定成前一个 枚举
成员 的值 + 1。如果它是第一个 枚举成员,那么它的值就为 0。
enum { A, B = 5+7, C, D = 8+C, E }
设置 A=0、B=12、C=13、D=21 和 E=22,所有的类型都为 int。
enum : long { A = 3, B }
设置 A=3、B=4,所有类型都为 long。
2.014
enum : string
{
A = "hello",
B = "betty",
C // error, cannot add 1 to "betty"
}
enum
{
A = 1.2f, // A is 1.2f of type float
B, // B is 2.2f of type float
int C = 3, // C is 3 of type int
D // D is 4 of type int
}
Manifest Constants
If there is only one member of an anonymous enum, the { } can be omitted:
enum i = 4; // i is 4 of type int
enum long l = 3; // l is 3 of type long
Such declarations are not lvalues, meaning their address cannot be taken.
............
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在HttpWatch Pro v6.014版本中,用户可以享受到以下主要功能: 1. **实时性能监控**:在浏览网页时,HttpWatch会实时显示页面加载的各项详细指标,帮助开发者快速定位性能瓶颈。 2. **全面报告**:提供详细的性能...
真正好用的HttpWatchPro-v6.014[完美破解版]
实战大数据扩展视频.zip.014
CLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2.zipCLion-2020.3.2....
cv2.pyd 包含 32位和64位 支持pyhton2.7.........................................................................................................................
fulao2.apk
AB052_fulao2.apk
DevExpress 2009.2.6.Sources.part05
《AutoCAD Electrical 2020 许可证验证软件:adsklicensinginstaller-9.2.2.2501.zip 深度解析》 在IT领域,特别是工程设计行业,CAD(计算机辅助设计)软件是不可或缺的工具。AutoCAD Electrical 2020 是一款专为...
syndiag2.jar syndiag2.jar
StimulsoftReports.Ultimate 2011.2.part2
kernel-devel-3.10.0-514.10.2.el7.x86_64.rpm
2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2.java依赖关系.zip2....
pycharm-community-2022.1.2.exe
ntp-4.2.6p5-29.el7.centos.2.x86_64
jenkins-2.346.3-1.1.noarch.rpm rpm包,最后一个jdk8的版本
在内网环境中部署Jenkins(版本2.346.1)时,由于网络限制,我们通常无法直接从官方仓库在线下载所需的插件。在这种情况下,我们需要采用离线方式安装插件,确保Jenkins能够正常运行并满足内网环境的需求。以下是...
DevComponents.DotNetBar2.dll 是一款由 DevComponents公司开发的.NET框架下的控件库,主要服务于Windows Forms应用程序的界面设计。本教程将全面介绍如何充分利用这个库,为你的应用增添专业且美观的用户界面。...
2 第一章产品概要................................................................................................................................... 10 1.1 产品检查.....................................