ENUM/END ENUM (Fortran 2003)
用途
您可以指定 ENUM 语句来定义和分组一组指定的整数常量。 ENUM 语句中的指定整数常量称为枚举符。
语法
如果要指定带有 scalar_int_exp 的枚举符,那么还必须指定双冒号分隔符 (::)。
规则
如果指定标量整数常量表达式,那么枚举符的值是标量整数常量表达式的结果。
仅当使用 -qintlog进行编译时,才能使用标量逻辑 常量表达式 。
如果未指定标量整数 常量表达式 ,并且枚举符首先在出现 enumeration_block 中,那么枚举符的值为 0。
如果未指定标量整数常量表达式 ,并且枚举符在 enumeration_block 中的另一个枚举符后面,那么该值大于前一个枚举符的值。
可以使用 -qenum 选项来设置枚举符的类型类型参数。 如果未指定 -qenum,那么枚举符的缺省类型为 4。
示例
以下示例以不同方式使用 ENUM 语句来定义枚举符。
enum, bind(c)
enumerator :: red =1, blue, black =5
enumerator yellow
enumerator gold, silver, bronze
enumerator :: purple
enumerator :: pink, lavender
endenum这些枚举符的值为: red = 1, blue = 2, black = 5, yellow = 6 , gold = 7, silver = 8, bronze = 9, purple = 10, pink = 11, lavender = 12。
如果为枚举符提供初始值,那么 ENUMERATOR 语句中需要 :: 。 列表中的 red 和 black 枚举符使用标量整数常量表达式进行初始化。
在枚举器定义中,当标量整数常量表达式未用于初始化所声明的枚举符列表中的任何枚举符时,:: 是可选的 :
- 在第二个和第三个枚举符定义中,:: 不是必需的,因为 yellow、gold、silver 和 bronze 未使用标量整数 常量表达式进行初始化。
- 第四个和第五个枚举符定义表明,即使 purple 未使用标量整数 常量表达式进行初始化,也可以使用 ::。
