2013-09-26 44 views
1

在ASN.1中,可以声明等的值参考:ASN.1值符号和类型引用

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

例如:

cost INTEGER ::= 123 

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

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

注意MyIntType在赋值它在类型分配声明之前引用。

这有效吗?

回答

2

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

注意,有时你不能避免这种情况,例如,如果有类型之间循环依赖:

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