【问题标题】:What is the difference between ASN.1 enumerated type and choice type?ASN.1 枚举类型和选择类型有什么区别?
【发布时间】:2011-03-19 09:42:11
【问题描述】:

您能否举个例子来说明何时使用枚举以及何时使用带有 ASN.1 的选择类型?

【问题讨论】:

    标签: enumeration choice asn.1


    【解决方案1】:

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

    ENUMERATED 只列出一组元素:

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

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

    我的选择 ::= 选择 { 一个整数, b 布尔值, c SEQUENCE (SIZE(1..10)) of MyFruit }

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

    aFruit MyFruit ::= 香蕉

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

    anotherChoice MyCHOICE ::= a:10

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 2010-10-02
      • 2010-12-11
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多