Aracılığıyla paylaş


Bağımsız Değişkeni Geçirme ve Adlandırma Kuralları

Microsoft'a Özgü

Microsoft C++ derleyicileri, bağımsız değişkenleri geçirmek ve işlevlerle çağıranlar arasında değer döndürmek için kurallar belirtmenize olanak sağlar. Tüm kurallar desteklenen tüm platformlarda kullanılamaz ve bazı kurallar platforma özgü uygulamaları kullanır. Çoğu durumda, belirli bir platformda desteklenmeyen bir kural belirten anahtar sözcükler veya derleyici anahtarları yoksayılır ve platform varsayılan kuralı kullanılır.

x86 platformlarında tüm bağımsız değişkenler geçirildiğinde 32 bit olarak genişletilir. Dönüş değerleri de 32 bit olarak genişletilir ve EDX:EAX yazmaç çiftinde döndürülen 8 baytlık yapılar dışında EAX yazmaçta döndürülür. EAX yazmaçlarında gizli dönüş yapılarına işaretçi olarak daha büyük yapılar döndürülür. Parametreler sağdan sola yığına gönderilir. POD olmayan yapılar yazmaçlarda döndürülmeyecek.

Derleyici, işlevde kullanılıyorsa ESI, EDI, EBX ve EBP yazmaçlarını kaydetmek ve geri yüklemek için giriş ve kapsam kodu oluşturur.

Dekont

Bir işlevden bir yapı, birleşim veya sınıf değere göre döndürülürse, türün tüm tanımlarının aynı olması gerekir, aksi halde program çalışma zamanında başarısız olabilir.

Kendi işlev giriş ve kapsam kodunuzu tanımlama hakkında bilgi için bkz . Naked Function Calls.

x64 platformlarını hedefleyen koddaki varsayılan çağırma kuralları hakkında bilgi için bkz . x64 Çağırma Kuralı. ARM platformlarını hedefleyen koddaki çağırma kuralı sorunları hakkında bilgi için bkz . Yaygın Visual C++ ARM Geçiş Sorunları.

Aşağıdaki çağırma kuralları Visual C/C++ derleyicisi tarafından desteklenir.

Anahtar sözcük Yığın temizleme Parametre geçirme
__cdecl Çağıran Parametreleri yığına ters sırada (sağdan sola) iletir
__clrcall yok Parametreleri CLR ifade yığınına sırayla (soldan sağa) yükleyin.
__stdcall Aranan Parametreleri yığına ters sırada (sağdan sola) iletir
__fastcall Aranan Yazmaçlarda depolandı, ardından yığına gönderildi
__thiscall Aranan Yığına gönderilir; this ECX'te depolanan işaretçi
__vectorcall Aranan Yazmaçlarda depolanır, ardından yığına ters sırada gönderilir (sağdan sola)

İlgili bilgiler için bkz . Eski Çağrı Kuralları.

END Microsoft'a Özgü

Ayrıca bkz.

Çağırma Kuralları