Директива .maxstack

Директива .maxstack

При реализации метода непосредственно средствами CIL нужно помнить о специальной директиве, которая называется .maxstack. Как следует из ее названия, директива .maxstack задает максимальное число переменных, которые может вместить стек в любой момент времени при выполнении метода. К счастью, директива .maxstack имеет значение по умолчанию (8), которого оказывается достаточно для подавляющего большинства методов, создаваемых разработчиками. Но у вас также есть возможность определить это значение явно, чтобы при желании вручную указать числа локальных переменных в стеке.

.method public hidebysig instanсе void Speak() cil managed {

 // В контексте этого метода в стек помещается ровно

 // одно значение (строковый литерал).

 .maxstack 1

 ldstr "Всем привет…"

 call void [mscorlib]System.Consolr::WriteLine(string)

 ret

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4. Опережающие описания и подключение подпрограмм. Директива

Из книги Информатика и информационные технологии: конспект лекций автора Цветкова А В

4. Опережающие описания и подключение подпрограмм. Директива В программе может содержаться несколько подпрограмм, т. е. структура программы может быть усложнена. Однако эти подпрограммы могут располагаться на одном уровне вложенности, поэтому сначала должно идти


8. Опережающие описания и подключение подпрограмм. Директива

Из книги Информатика и информационные технологии автора Цветкова А В

8. Опережающие описания и подключение подпрограмм. Директива В программе может содержаться несколько подпрограмм, т. е. структура программы может быть усложнена. Однако эти подпрограммы могут располагаться на одном уровне вложенности, поэтому сначала должно идти


R.16.9 Пустая директива

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.16.9 Пустая директива Команда препроцессора вида#не оказывает никакого


Новая директива, начинающаяся с точки

Из книги OrCAD PSpice. Анализ электрических цепей автора Кеоун Дж.

Новая директива, начинающаяся с точки .MODEL <имя> <тип> ([<имя параметра> = <значение>]*)Например, запись.MODEL KT coreвводит модель для связанных катушек индуктивности, имя должно начинаться с K. Если команда также содержит слово core, то используется нелинейная модель.


Директива #define

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Директива #define Синтаксис:#define <идентификатор> <текст>#define <идентификатор> <список параметров> <текст>Директива #define заменяет все вхождения <идентификатора> в исходном файле на <текст>, следующий в директиве за <идентификатором>. Этот процесс


Директива #undef

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Директива #undef Синтаксис:#undef <идентификатор>Директива #undef отменяет действие текущего определения #define для <идентификатора>. Чтобы отменить макроопределение посредством директивы #undef, достаточно задать его <идентификатор>. Задание списка параметров не


Директива обработки ошибок

Из книги C++ для начинающих автора Липпман Стенли

Директива обработки ошибок В СП ТС реализована директива #error. Ее формат:#error <текст>Обычно эту директиву записывают среди директив условной компиляции для обнаружения некоторой недопустимой ситуации. По директиве #error препроцессор прерывает компиляцию и выдает


Пустая директива

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

Пустая директива Для повышения читабельности программ СП ТС распознает пустую директиву, состоящую из строки, содержащей просто знак #. Эта директива всегда


4. Символьные строки директива #define, функции printf( ) и scanf( ) 

Из книги автора

4. Символьные строки директива #define, функции printf( ) и scanf( )    В этой главе мы продолжим нашу "игру" с данными покопаемся в вопросах, выходящих за пределы тех, которые были связаны с типами данных, и рассмотрим символьную строку Сначала опи шем важное средство языка -


3.12. Директива typedef

Из книги автора

3.12. Директива typedef Директива typedef позволяет задать синоним для встроенного либо пользовательского типа данных. Например:typedef double wages;typedef vectorint vec_int;typedef vec_int test_scores;typedef bool in_attendance;typedef int *Pint;Имена, определенные с помощью директивы typedef, можно использовать точно так же, как


7.7. Директива связывания extern "C" A

Из книги автора

7.7. Директива связывания extern "C" A Если программист хочет использовать функцию, написанную на другом языке, в частности на С, то компилятору нужно указать, что при вызове требуются несколько иные условия. Скажем, имя функции или порядок передачи аргументов различаются в


9.1.5. Директива extern "C" и перегруженные функции A

Из книги автора

9.1.5. Директива extern "C" и перегруженные функции A В разделе 7.7 мы видели, что директиву связывания extern "C" можно использовать в программе на C++ для того, чтобы указать, что некоторый объект находится в части, написанной на языке C. Как эта директива влияет на объявления


Параллельные секции и директива parallel sections

Из книги автора

Параллельные секции и директива parallel sections Директива parallel sections обеспечивает параллельное выполнение нескольких операторов, простых или составных. {$omp parallel sections} begin секция 1; секция 2; ...; end; Каждый оператор в блоке begin ... end, следующем за директивой является отдельной


Синхронизация и директива critical

Из книги автора

Синхронизация и директива critical Директива critical исключает параллельное выполнение следующего за ней оператора. {$omp critical имя} оператор; Этот оператор образует критическую секцию – участок кода, который не может выполняться одновременно несколькими потоками.Только