C++ sınıf yöntemi çağrıldığında, örtülü 'this' işaretçisi ilk argüman mı, yoksa son mu? yani: ister birinci, isterse sonuncu yığına itilir olsun. olur ++ da G olmadığını cevap olacağını, daha da önemlisiC++ bunu örtüyor ve tam olarak yığında itiliyor nasıl
int foo::bar(foo *const this, int arg1, int arg2);
//or:
int foo::bar(int arg1, int arg2, foo *const this);
dolayısıyla uzantısı olarak
ve: Başka bir deyişle
, ben olmak derleyici tarafından alınır, bir sınıf yöntemi çağrılan olup olmadığını soruyorum Sırasıyla bu işaretçiyi en son veya ilk olarak itin. Google'ı sorguladım, ama fazla bir şey bulamadım.Ve bir yan not olarak, C++ işlevleri çağrıldığında, C işlevleri ile aynı şeyi yapar mı? i.e:
push ebp
mov ebp, esp
Sonuç olarak: bir sınıf yöntemi çağrılmalı mı?
; About to call foo::bar.
push dword 0xDEADBEEF
push dword 0x2BADBABE
push dword 0x2454ABCD ; This one is the this ptr for the example.
; this code example would match up if the this ptr is the first argument.
call _ZN3foo3barEpjj
sayesinde ve çok mecbur.
DÜZENLEME: Ben Bu derleyici çağrı kongre ve hedef mimarisi bağlıdır 4.3
Bu soruyu sormamanız ve derleyiciniz tarafından oluşturulan derleme konusuna bakmak sizin için daha çabuk olurdu. Hepsi, çıkış montaj koduna metin olarak geçiş yapar. –