вызывающая функция их может как переменную использовать?
Может использовать. Например, если передаётся структура (не по указателю, а сразу в стек).
Хм. А я слышал про то, что раньше компиляторы Си использовали для оптимизации своё соглашение о вызовах, при одинаковых аргументах не затирая стек перед вызовом следующей функций. Это получается только в том случае, если вызываемая функция их не меняла делалось или как?
Так это и есть cdecl. push arg1 push arg2 call myfunc call myfunc call myfunc add esp, 4*2
Ну так если аргумент в стеке функция изменит, то следующие вызовы будут некорректны
Ну, такое редко же бывает.
Ни разу не видел. Возможно, если компилятор видит определения функций, но там очень много всяких "но", чтобы это было правдой.
Ага, а потом оно выскочит это самое редко и пипец)
Обсуждают сегодня