您能举例说明何时使用枚举以及何时使用ASN.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中的“联盟”一样。
希望这有帮助。