`
- 浏览:
222713 次
- 性别:
- 来自:
北京
-
枚举声明:
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. **全面报告**:提供详细的性能...
实战大数据扩展视频.zip.014
DXperience-8.3.5.zip.014
cv2.pyd 包含 32位和64位 支持pyhton2.7.........................................................................................................................
nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm安装包(含有部署手册) nginx-1.18.0-2.el7.ngx.x86_64.rpm...
nsutil2.dll文件,解决xshell打开错误。
ntp-4.2.6p5-25.el7.centos.2.x86_64.rpm,ntp-4.2.6p5-25.el7.centos.2.x86_64.rpm
本文将深入探讨与“sql-map-2.dtd”和“sql-map-config-2.dtd”相关的知识点,以及它们在Ibatis中的作用。 Ibatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,通过XML映射...
pycharm-community-2022.1.2.exe
2013.3月最新nssock2.dll版本 对于xshell等软件打开错误,无法连接动态库有很好的解决 下载后,将该文件放到安装目录下 或者放到c盘的windows/System32目录下
将HEX文件转换成TXT文本的程序.运行命令行中输入cmd命令,然后进入文件的目录,然后在输入转换命令.
Red.Gate.SQL.Toolbelt.v1.8.2.238.Incl.Keygen SQL Toolbelt Bundle是套可以用于开发SQL Server数据库的辅助开发工具包。16个数据库服务器工具在一个单一的安装程序包,相比分别购买节省65%以上。
常用控件:拷贝到C:\windows\system32下,cmd下切换到文件所在目录,运行regsvr32 Mscomct2.ocx即可注册
2. Eclipse Platform.................................................................................................................................................10 2.1概观.............................
PackageKit-yum-1.1.10-2.el7.centos.x86_64.rpm
eclipse插件 org.apache.axis2.eclipse.service.plugin_1.7.4.jar
内部版本 STM32 ST-LINK utility V4.2.0.0,STLinkUSBDriver.dll v5.0.3.0, ST-LINK_CLI.exe v3.2.0.0,Firmware Version v2.J29.S7。亲测OK
linux vnc 缺少的文件 libstdc++-libc6.2-2.so.3 解压后, 需要将这个文件放在/usr/lib下, linux vnc-4_1_3-x86_linux 下的vnc才能正常工作哦, 不然一直会报错说找不到或者没有这个文件