История изменений
Исправление Stanson, (текущая версия) :
Разница между адресом первого и последнего аргумента плюс размер последнего (или первого, не помню в каком они там порядке на стек кладутся) аргумента.
Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.
Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.
То же самое и с локальными переменными. Адреса сравнивай-вычитай, и всё понятно станет.
Исправление Stanson, :
Разница между адресом первого и последнего аргумента плюс размер последнего (или первого, не помню в каком они там порядке на стек кладутся) аргумента.
Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.
Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.
Исходная версия Stanson, :
Разница между адресом первой и последней переменных плюс размер последней (или первой, не помню в каком они там порядке на стек кладутся) переменной.
Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.
Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.