Подтипы — различия между версиями
Admin (обсуждение | вклад) (Новая страница: « Промежуточный язык имеет минимальную реализацию подтипирования - только для целоч…») |
(нет различий)
|
Текущая версия на 02:49, 14 марта 2018
Промежуточный язык имеет минимальную реализацию подтипирования - только для целочисленных типов. Любое значение типа l (long) можно использовать в w (word) контексте. В этом случае используются только 32 младших значащих бита слова.
The IL has a minimal subtyping feature, for integer types only. Any value of type l can be used in a w context. In that case, only the 32 least significant bits of the word value are used.
Обратите внимание, что это противоположность обычным подтипированиям для целых чисел (в C мы можем безопасно использовать int, где ожидается long). Значение long не может использоваться в контексте w (word). Причина заключается в том, что слово может быть знаковое (signed) или беззнаковое (unsigned), поэтому приведение его к long может быть выполнено двумя способами: либо с помощью расширения с заполнением нулями старших бит, либо с помощью расширения знака.
Make note that it is the opposite of the usual subtyping on integers (in C, we can safely use an int where a long is expected). A long value cannot be used in word context. The rationale is that a word can be signed or unsigned, so extending it to a long could be done in two ways, either by zero-extension, or by sign-extension.
Источник c9x.me