Некоторые соглашения о вызовах, которые используются в современных языках программирования:
- cdecl (от англ. c-declaration). 12 Соглашение о вызовах для языка Си. 1 Аргументы функций передаются через стек, справа налево. 12 Это основной способ вызова функций с переменным числом аргументов. 1
- pascal. 1 Соглашение о вызовах для языка Паскаль. 1 Аргументы процедур и функций передаются через стек, слева направо. 1 Изменяемые параметры передаются только по ссылке. 1
- stdcall или winapi. 1 Соглашение о вызовах, применяемое в ОС Windows для вызова функций WinAPI. 1 Аргументы функций передаются через стек, справа налево. 1 Очистку стека производит вызываемая подпрограмма. 1
- fastcall. 1 Общее название соглашений, передающих параметры через регистры. 1 Обычно это самый быстрый для выполнения компьютером способ. 1 Если для сохранения всех параметров и промежуточных результатов регистров недостаточно, то дополнительно используется стек. 1
- safecall. 1 Соглашение о вызовах, используемое для вызова методов интерфейсов COM. 1 Код, добавляемый после вызова функции, анализирует возвращаемое значение. 1 При наличии ошибки код записывает код ошибки, сообщение об ошибке и поднимает исключение. 1
- thiscall. 1 Соглашение о вызовах, используемое компиляторами для языка C++ при вызове методов классов в объектно-ориентированном программировании. 1 Аргументы функции передаются через стек, справа налево. 1 Очистку стека производит вызываемая функция. 1