: http://en.wikipedia.org/wiki/X86_calling_conventionsNeden arayan cdecl çağrı kuralı içindeki yığını temizlemek zorunda? Gönderen
push c
push b
push a
call function_name
add esp, 12 ;Stack clearing
mov x, eax
Neden açıkça denilen fonksiyon nedenle yığın işaretçisi geri yığın kapalı parametreleri poped olmalıydı çünkü yığın temizlemek için ESP için 12 eklemem gerekir mi ...?
başka soru: Teorik olarak
, (bir kayıtta yığın argümanların sayısını geçmesi durumunda örneğin) temizleme hakkının bakımı Aranan değişken parametre fonksiyonlarını uygulamak mümkün olurdu?
Kesinlikle. C işlevleri ile, arayan bir işlevi çağırmadan önce istendiği gibi yığında birçok argüman çalıştırabilir. Aranan işlev sadece kaç tane temizlenmelidir bilmez. –
nasıl Aranan bunun güvenli bir şekilde erişebilmesi için çağrıldı kaç parametreler biliyor? Printf() durumunda format dizisini ayrıştırabilir, ancak aksi halde nasıl yapar? – anon
http://en.wikipedia.org/wiki/Stdarg.h –