【问题标题】:ASN.1 value notation and Type ReferencesASN.1 值表示法和类型引用
【发布时间】:2013-09-26 16:32:07
【问题描述】:

在 ASN.1 中,您可以声明如下值引用:

<identifier> <Type Reference> ::= <Value Notation>

例如:

cost INTEGER ::= 123

类型引用组件可以是内置类型,也可以是用户定义的类型。我的问题是,当提到用户定义的类型时,ASN.1 是否要求该类型必须已经定义? (假设它直到稍后才定义)。例如,以下是否是有效的 ASN.1 语法:

cost MyIntType ::= 50
MyIntType ::= INTEGER (0..100)

请注意,MyIntType 在值赋值中被引用它在类型赋值中声明。

这有效吗?

【问题讨论】:

    标签: asn.1


    【解决方案1】:

    这是完全有效的。使用前不必定义。

    请注意,有时您无法避免这种情况,例如,如果类型之间存在循环依赖关系:

    A ::= some definition involving B
    B ::= some definition involving A
    

    【讨论】:

      【解决方案2】:

      正如@Henry 解释的那样,ASN.1 允许前向引用;即在类型定义中使用前引用。

      在定义相互递归的数据类型时也非常有用(实际上是必要的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 2015-12-10
        • 1970-01-01
        相关资源
        最近更新 更多