Передача и соглашения об именовании аргумента
Только для систем Microsoft
Все аргументы расширены до 32 бита, когда они передаются.Возвращаемые значения также расширены до 32 бита и возвращаются в регистре EAX, за исключением 8 структур байтов, которые возвращаются в EDX: пары регистра EAX.Большие структуры возвращаются в регистре EAX как указатели на скрытый возвращения структур.Параметры передаются в стек справа налево.Структуры, которые не стручков не возвращаются в регистрах.
Компилятор создает код пролога и эпилога для сохранения и извлечения регистры ESI, EDI, EBX EBP, и, если они используются в функции.
Примечание |
---|
Когда структура, объединение или класс возвращается из функции значением всем определениям типов должны совпадать, еще программы могут завершиться ошибкой во время выполнения. |
Сведения о том, как определить собственный код пролога и эпилога функции см. в разделе Нагие вызовы функций.
Следующие соглашения о вызовах поддерживаемые компилятором visual C/C++.
Ключевое слово |
Очистка стека |
Передача параметров |
---|---|---|
Вызывающий объект |
Помещает параметры в стек в обратном порядке (справа налево) |
|
нет |
Загрузите параметры в стек выражений среды CLR в порядке (слева направо). |
|
Вызываемый объект |
Помещает параметры в стек в обратном порядке (справа налево) |
|
Вызываемый объект |
Затем сохраняется в регистрах, в стеке отправлянных |
|
Вызываемый объект |
Отправлянно в стеке. this указатель, хранящиеся в ECX |
Дополнительные сведения см. в разделе Устаревшие соглашения о вызовах.
ЭЛЕМЕНТ, относящийся