OpCodes.Localloc Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выделяет определенное количество байтов из пула локальной динамической памяти и помещает в стек вычислений адрес (временный указатель с типом *
) первого выделенного байта.
public: static initonly System::Reflection::Emit::OpCode Localloc;
public static readonly System.Reflection.Emit.OpCode Localloc;
staticval mutable Localloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Localloc As OpCode
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:
Формат | Формат сборки | Описание |
---|---|---|
FE 0F | localloc | Выделение пространства из локальной кучи. |
Переходный режим стека в последовательном порядке:
Количество выделенных байтов помещается в стек.
Число байтов, выброщенных из стека; объем памяти, соответствующий размеру, выделяется из локальной кучи.
Указатель на первый байт выделенной памяти помещается в стек.
Инструкция localloc
выделяет (типnatural unsigned int
) байтов size
из локального пула динамической памяти и возвращает адрес (временный указатель, тип *
) первого выделенного байта. Возвращаемый блок памяти инициализируется значением 0, только если флаг инициализации метода имеет значение true
. Когда текущий метод выполняет , локальный Retпул памяти становится доступным для повторного использования.
Полученный адрес выравнивается таким образом, что любой примитивный тип данных можно сохранить в нем с помощью stind
инструкций (например, Stind_I4) и загрузить с помощью инструкций ldind
(например Ldind_I4, ).
Инструкция localloc
не может выполняться в блоке filter
, catch
, finally
или fault
.
StackOverflowException возникает, если недостаточно памяти для обслуживания запроса.
Emit Следующая перегрузка localloc
метода может использовать код операции: