__fastcall
Microsoft özel
__Fastcall çağırma işlevi bağımsız değişkenlerinin kayıtlarına, mümkün olduğunda iletilmek üzere olduğunu belirtir.Aşağıdaki liste, bu çağrı kuralı uygulaması gösterir.
Öge |
Uygulama |
---|---|
Bağımsız değişken geçirme sırası |
İlk iki dword ya da daha küçük bağımsız ecx ve edx Yazmaçları iletilir; tüm diğer bağımsız değişkenler sağa sola geçirilir. |
Yığın bakım sorumluluğu |
İşlev POP yığından bağımsız olarak adlandırılır. |
Ad düzenleme kuralı |
At işareti (@) adlarını konduğundan; bir Design View'e son bayt sayısını (ondalık) parametresinde arkasından işareti listesi adlarını ekli. |
Büyük/küçük harf çevirme kuralı |
Büyük/küçük harf çevirisi gerçekleştirilir. |
[!NOT]
Derleyici gelecekteki sürümleri farklı kayıtları parametreleri depolamak için kullanabilirsiniz.
Kullanarak /Gr derleyici seçeneği neden olan her işlev fastcall işlev çakışan öznitelik ile bildirilmiş veya işlevin adını kaldırılmadığı sürece derlemeye modülünde main.
Itanium işlemci ailesi (IPF) ve AMD64 makinelerde __fastcall kabul edilir ve derleyici tarafından; göz ardı IPF yongası üzerinde kural gereği kayıttaki Parametreler iletilir.
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 __fastcall mymethod();
};
Bu
void CMyClass::mymethod() { return; }
şuna eşdeğerdir
void __fastcall CMyClass::mymethod() { return; }
Örnek
Aşağıdaki örnekte işlevin adlı DeleteAggrWrapper kayıtlarına geçirilen bağımsız değişkenler:
// 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, ...);