Прочитать на английском

Поделиться через


OpCodes.Localloc Поле

Определение

Выделяет определенное количество байтов из пула локальной динамической памяти и помещает в стек вычислений адрес (временный указатель с типом *) первого выделенного байта.

C#
public static readonly System.Reflection.Emit.OpCode Localloc;

Значение поля

Комментарии

В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:

Формат Формат сборки Описание
FE 0F localloc Выделение пространства из локальной кучи.

Переходный режим стека в последовательном порядке:

  1. Количество выделенных байтов помещается в стек.

  2. Число байтов, выброщенных из стека; объем памяти, соответствующий размеру, выделяется из локальной кучи.

  3. Указатель на первый байт выделенной памяти помещается в стек.

Инструкция localloc выделяет (типnatural unsigned int) байтов size из локального пула динамической памяти и возвращает адрес (временный указатель, тип *) первого выделенного байта. Возвращаемый блок памяти инициализируется значением 0, только если флаг инициализации метода имеет значение true. Когда текущий метод выполняет , локальный Retпул памяти становится доступным для повторного использования.

Полученный адрес выравнивается таким образом, что любой примитивный тип данных можно сохранить в нем с помощью stind инструкций (например, Stind_I4) и загрузить с помощью инструкций ldind (например Ldind_I4, ).

Инструкция localloc не может выполняться в блоке filter, catch, finallyили fault .

StackOverflowException возникает, если недостаточно памяти для обслуживания запроса.

Emit Следующая перегрузка localloc метода может использовать код операции:

Применяется к

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0