Aracılığıyla paylaş


FunctionTailcall İşlevi

Şu anda yürütülen işlevin başka bir işleve kuyruk çağrısı yapmak üzere olduğunu profil oluşturucuya bildirir.

Not

İşlevFunctionTailcall, .NET Framework sürüm 2.0'da kullanım dışıdır. Çalışmaya devam eder, ancak bir performans cezasına neden olur. Bunun yerine FunctionTailcall2 işlevini kullanın.

Sözdizimi

void __stdcall FunctionTailcall (  
    [in] FunctionID funcID  
);  

Parametreler

funcID [in] Kuyruk çağrısı yapmak üzere olan yürütülmekte olan işlevin tanımlayıcısı.

Açıklamalar

Kuyruk çağrısının hedef işlevi geçerli yığın çerçevesini kullanır ve doğrudan kuyruk çağrısını yapan işlevin çağırana döner. Bu, bir kuyruk çağrısının hedefi olan bir işlev için FunctionLeave geri çağırmasının verilmeyeceği anlamına gelir.

FunctionTailcall işlevi bir geri çağırmadır; bunu uygulamanız gerekir. Uygulamanın (naked) depolama sınıfı özniteliğini __declspeckullanması gerekir.

Yürütme altyapısı bu işlevi çağırmadan önce hiçbir yazmaç kaydetmez.

  • Girişte, kayan nokta birimindeki (FPU) olanlar da dahil olmak üzere kullandığınız tüm yazmaçları kaydetmeniz gerekir.

  • Çıkışta, çağıranı tarafından gönderilen tüm parametreleri çıkararak yığını geri yüklemeniz gerekir.

uygulaması FunctionTailcall , çöp toplamayı geciktireceği için engellememelidir. Yığın çöp toplama dostu bir durumda olmayabileceği için uygulama çöp toplamayı denememelidir. Çöp toplama denenirse, çalışma zamanı dönene kadar FunctionTailcall engeller.

Ayrıca, işlevin FunctionTailcall yönetilen koda çağrı yapmaması veya herhangi bir şekilde yönetilen bellek ayırmaya neden olması gerekir.

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorProf.idl

Kitaplığı: CorGuids.lib

.NET Framework Sürümleri: 1.1, 1.0

Ayrıca bkz.