4

你能给我一个例子来说明何时使用枚举以及何时使用带有 ASN.1 的选择类型吗?

4

1 回答 1

5

CHOICE 和 ENUMERATED 用于不同的目的,就像 C 中的“enum”和“union”一样。

ENUMERATED 仅列出一组元素:

MyFruit ::= ENUMERATED { 香蕉 (1), 苹果 (2), 梨 (3) }

CHOICE 允许从列表中选择一个元素,并定义其属性:

MyCHOICE ::= CHOICE { a INTEGER, b BOOLEAN, c SEQUENCE (SIZE(1..10)) OF MyFruit }

如果您使用 ASN.1 值表示法来声明这些类型的变量,它将如下所示:

aFruit MyFruit ::= 香蕉

aChoice MyCHOICE ::= c:{香蕉、苹果、香蕉、梨}

anotherChoice MyCHOICE ::= a:10

看?CHOICE 允许使用相同的类型名来存储不同的类型(因此是值)。就像 C 中的“联合”。

希望这可以帮助。

于 2010-08-20T10:22:36.783 回答