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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin