LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

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

Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.

Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.

То же самое и с локальными переменными. Адреса сравнивай-вычитай, и всё понятно станет.

Исправление Stanson, :

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

Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.

Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.

Исходная версия Stanson, :

Разница между адресом первой и последней переменных плюс размер последней (или первой, не помню в каком они там порядке на стек кладутся) переменной.

Порядок в общем-то неважен, можно просто проверять какой из адресов больше, так что такой способ пойдёт для любых calling convention.

Проблема может быть со всякими фичами всяких компиляторов для всяких процессоров которые умеют аргументы в регистрах передавать с целью оптимизации.