ASN.1枚举类型和选择类型之间有什么区别?

时间:2010-07-22 07:10:48

标签: enumeration choice asn.1

您能举例说明何时使用枚举以及何时使用ASN.1的选择类型?

1 个答案:

答案 0 :(得分:3)

CHOICE和ENUMERATED用于不同的目的,与C中的“enum”和“union”不同。

ENUMERATED仅列出一组元素:

MyFruit :: = ENUMERATED {banana(1),apple(2),pear(3)}

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

MyCHOICE :: = CHOICE {  一个INTEGER,  b布尔南,  c序列(SIZE(1..10))MyFruit }

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

aFruit MyFruit :: =香蕉

aChoice MyCHOICE :: = c:{banana,apple,banana,pear}

anotherChoice MyCHOICE :: = a:10

请参阅? CHOICE允许使用相同的类型名来存储不同的类型(因此值)。就像C中的“联盟”一样。

希望这有帮助。