В ASN.1 некоторые типы имеют один и тот же тип записи значений. Например, значение 'ABCD'H
— это шестнадцатеричная строка, которая может представлять либо тип OCTET STRING
, либо тип BIT STRING
. Точно так же значение 10
— это число, которое может быть либо типа INTEGER
, либо типа REAL
. Но если мы присваиваем значения переменной, можем ли мы использовать эту переменную в выражении присваивания для совместимого типа?
Например:
MySchema DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
x OCTET STRING ::= 'ABCD'H
y BIT STRING ::= x -- is this valid?
i INTEGER ::= 10
r REAL ::= i -- is this valid?
END
По крайней мере, одна реализация ASN.1 выдает здесь сообщение об ошибке. Но я не могу найти, что об этом говорит настоящий стандарт.