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

标签 enumeration choice asn.1

你能给我一个例子来说明何时使用枚举以及何时使用 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/

相关文章:

ios - 枚举NSArray从给定索引开始以两种方式搜索(环绕)

c++ - 依赖整数 boolean 转换的枚举

database - 如何选择数据库管理系统?

programming-languages - 何时使用处理语言?

python - C/Python 中的 asn.1 解析器

windows - DirectInput 模拟摇杆范围

coding-style - boolean 值作为方法参数是 Not Acceptable 吗?

django - django 表单选择字段的初始值被忽略

python - 使用Python从公钥获取RSA指数和模数

无效的 ASN.1 对象标识符编码错误