你能给我一个例子来说明何时使用枚举以及何时使用 ASN.1 的选择类型?
最佳答案
CHOICE 和 ENUMERATED 用于不同的目的,就像 C 中的“enum”和“union”一样不同。
ENUMERATED 仅列出一组元素:
MyFruit::= ENUMERATED { 香蕉 (1)、苹果 (2)、梨 (3) }
CHOICE 允许从列表中选择一个元素,并定义其属性:
我的选择::= 选择 {
一个整数,
b bool 值,
c 序列(大小(1..10))MyFruit
}
如果您使用 ASN.1 值表示法来声明这些类型的变量,它将如下所示:
aFruit MyFruit::= 香蕉
aChoice MyCHOICE::= c:{香蕉、苹果、香蕉、梨}
另一个选择我的选择::= a:10
看? CHOICE 允许使用相同的类型名来存储不同的类型(因此是值)。就像 C 中的“联合”一样。
希望这可以帮助。
关于enumeration - ASN.1 枚举类型和选择类型有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306534/