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


Типы функций

Существует два основных типа функций. Функция, которой требуется кадр стека, называется функцией с кадром. Функция, которая не требует кадр стека, называется конечной функцией.

Функция со кадром — это функция, которая распределяет пространство в стеке, вызывает другие функции, сохраняет защищенные регистры или использует обработчик исключений. А также требует наличие записи в таблице функции. Функция с кадром требует наличие пролога и эпилога. Функция с кадром позволяет динамически распределять пространство в стеке и использовать указатель кадра. Функция с кадром имеет все необходимые характеристики для использования вызова этого стандарта.

Если функция с кадром не вызывает другую функцию, то выравнивать стеки не нужно (см. раздел Выделение памяти в стеке).

Конечная функция является единственной функцией, которая не требует наличия записи в таблице функции. Она не вызывает другие функции, не распределяет пространство и не сохраняет защищенные регистры. Функции позволено не выравнивать стек во время своего выполнения.

См. также

Ссылки

Использование стека