| .deserve |
19.10.2021 11:55 |
Вот зачем - старая добрая вики
Плюс, как выше написали, cdecl функция, по причине того, что стек чистит самостоятельно caller, может использовать вариадики - цппреф
Цитата:
Сообщение от #Northn
Компьютеру, чтобы стек не переполнился и приложение не вылетело.
Компьютеру, чтобы понимать, откуда что брать: из ecx, edx, или из локального стека
Например, методы классов используют thiscall, в таком режиме в первый невидимый аргумент (регистр ecx) пихается указатель на наш класс.
|
При чем здесь переполнение стека? Соглашение о вызовах к этому вообще ни малейшего отношения не имеет
И нету никакого локального стека, а есть область для локальных переменных в стеке (которую часто называют локал стеком, да), которая расположена в стековом фрейме функции, но аргументы, переданные функции, оттуда не берутся
"Например, методы классов используют thiscall" - а в POSIX? Правильно, __cdecl.
И аргумент вполне себе видимый
|