Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft'a Özgü
Çağırma __fastcall kuralı, mümkün olduğunda, işlevlere yönelik bağımsız değişkenlerin yazmaçlara geçirileceklerini belirtir. Bu çağırma kuralı yalnızca x86 mimarisi için geçerlidir. Aşağıdaki liste bu çağırma kuralının uygulamasını gösterir.
| Öğe | Uygulama |
|---|---|
| Bağımsız değişken geçirme sırası | Bağımsız değişken listesinde soldan sağa bulunan ilk iki DWORD veya daha küçük bağımsız değişkenler ECX ve EDX yazmaçlarında geçirilir; diğer tüm bağımsız değişkenler sağdan sola yığına geçirilir. |
| Yığın bakımı sorumluluğu | Çağrılan işlev, bağımsız değişkenleri yığından açar. |
| Ad düzenleme kuralı | At sign (@) adlara ön eklenmiştir; at işareti ve ardından parametre listesindeki bayt sayısı (ondalık) adlara son eklenmiştir. |
| Durum çevirisi kuralları | Durum çevirisi yapılmaz. |
| Sınıflar, yapılar ve birleşimler | "Çok baytlı" türler (boyuttan bağımsız olarak) olarak kabul edilir ve yığına geçirilir. |
| Sabit listeleri ve sabit listesi sınıfları | Temel türü yazmaç tarafından geçirildiyse yazmaç tarafından geçirilir. Örneğin, temel alınan tür int 8, 16 veya unsigned int 32 bit boyutundaysa. |
Not
Gelecekteki derleyici sürümleri, parametreleri depolamak için farklı yazmaçlar kullanabilir.
/Gr derleyici seçeneğinin main
__fastcall anahtar sözcüğü, ARM ve x64 mimarilerini hedefleyen derleyiciler tarafından kabul edilir ve yoksayılır; bir x64 yongasında, kural gereği, mümkün olduğunda ilk dört bağımsız değişken yazmaçlara geçirilir ve yığına ek bağımsız değişkenler geçirilir. Daha fazla bilgi için bkz . x64 Çağrı Kuralı. ARM yongasında, yazmaçlarda en çok dört tamsayı bağımsız değişkeni ve sekiz kayan nokta bağımsız değişkeni geçirilebilir ve yığında ek bağımsız değişkenler geçirilir.
Statik olmayan sınıf işlevleri için işlev satır dışı olarak tanımlanırsa, çağrı kuralı değiştiricisinin satır dışı tanımında belirtilmesi gerekmez. Diğer bir deyişle, statik olmayan üye sınıfı yöntemler için tanım noktasında bildirim sırasında belirtilen çağırma kuralı kabul edilir. Bu sınıf tanımını ele alalım:
struct CMyClass {
void __fastcall mymethod();
};
bu:
void CMyClass::mymethod() { return; }
şuna eşdeğerdir:
void __fastcall CMyClass::mymethod() { return; }
Derleyici seçeneği _fastcall belirtilmediği sürece, __fastcall önceki sürümlerle uyumluluk için bir eş anlamlıdır.
Örnek
Aşağıdaki örnekte işlev DeleteAggrWrapper , yazmaçlarda bağımsız değişkenler geçirilir:
// Example of the __fastcall keyword
#define FASTCALL __fastcall
void FASTCALL DeleteAggrWrapper(void* pWrapper);
// Example of the __ fastcall keyword on function pointer
typedef BOOL (__fastcall *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);
END Microsoft'a Özgü
Ayrıca bkz.
Bağımsız Değişkeni Geçirme ve Adlandırma Kuralları
Anahtar Sözcükler