__cdecl
Microsoft özel
c ve C++ programlarında çağırma varsayılan değer budur. Yığın çağıran tarafından temizlenen çünkü yapmak için vararg fonksiyonlar. __cdecl Değerinden daha büyük yürütülebilir dosyaları oluşturur çağırma çaðrý standardýný, yığın temizleme kod eklemek için her işlev çağrısı gerektirdiğinden. Aşağıdaki liste, bu çağrı kuralı uygulaması gösterir.
Öge |
Uygulama |
---|---|
Bağımsız değişken geçirme sırası |
Sağdan sola |
Yığın bakım sorumluluğu |
İşlev çağırma yığını bağımsız değişkenlerde POP |
Ad düzenleme kuralı |
__Cdecl verme o kullan c bağlantı işlevleri, alt çizgi karakteri (_) adları için dışında ön eki eklenir. |
Büyük/küçük harf çevirme kuralı |
Gerçekleştirilen büyük çeviri |
Not
İlgili bilgi için bkz: Donatılmış adları.
Itanium işlemci ailesi (IPF) üzerinde ve x 64 işlemciler, __cdecl kabul edilir ve derleyici tarafından; göz ardı IPF üzerinde kural gereği kayıttaki Parametreler iletilir.
__ Koyuncdecl bir değişken veya bir işlev adından önce değiştiricisi. Varsayılan adlandırma ve arama kuralları c olduğu için yalnızca, __ gerekcdecl /Gz (stdcall) veya /Gr (fastcall) derleyici seçeneği belirtilmiş olur. /Gd derleyici seçeneği güçleri __cdecl çağırma.
Tanımlı çıkış satır sonu, işlevi ise, statik olmayan sınıf işlevleri için Arama kuralı değiştirici satır sonu tanımında belirtilecek yok. Diğer bir deyişle, sınıf statik olmayan üye yöntemleri için tanımı noktasında bildirimi sırasında belirtilen çağrı kuralı kabul edilir. Bu sınıf tanımı verilen,
struct CMyClass {
void __cdecl mymethod();
};
Bu
void CMyClass::mymethod() { return; }
şuna eşdeğerdir
void __cdecl CMyClass::mymethod() { return; }
Örnek
Aşağıdaki örnekte, derleyici adlandırma ve arama kuralları için c kullanmak için talimat system işlevi:
// Example of the __cdecl keyword on function
int __cdecl system(const char *);
// Example of the __cdecl keyword on function pointer
typedef BOOL (__cdecl *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);