/ Gd, /Gr, /Gz (Arama kuralı)
Bu seçenekler, fonksiyon bağımsız değişkenleri bu da yığına itilir sırasını belirlemek; olup çağıran işlev veya çağrılan işlev çağrısı, sonunda yığından bağımsız kaldırır; ve derleyici her işlev tanımlamak için kullandığı adı decorating kuralı.
/Gd
/Gr
/Gz
Notlar
[!NOT]
Bu derleyici seçenekleri, yalnızca x 86 hedefleme derleyici kullanılabilir; hedefleme derleyiciler bu derleyici seçenekleri kullanılamaz x64 veya Itanium.
/Gd, varsayılan ayarı belirtir __cdecl for C++ üye dışındaki tüm işlevleri işlevleri ve işaretlenmiş işlevlerini çağırma çaðrý standardýný veya __fastcall.
/Grbelirtir __fastcall C++ üye dışındaki tüm fonksiyonlar için sfunctions ve işaretlenmiş işlevlerini çağırma __cdecl veya __stdcall.Tüm __fastcall işlevleri prototipler olması gerekir.
/Gzbelirtir __stdcall for C++ üye dışındaki tüm işlevleri işlevleri ve işaretlenmiş işlevlerini çağırma __cdecl veya __fastcall.Tüm __stdcall işlevleri prototipler olması gerekir.
Bağımsız değişken bir dizi ele işlevleri işaretlenmesi __cdecl.
/Gd, /Gr, and /Gz are not compatible with /clr:safe or /clr:pure.
[!NOT]
X 86 işlemciler, varsayılan olarak, C++ üye işlevler kullanma __thiscall.
Tüm işlemciler, açıkça olarak işaretlenmiş bir üye işlev için __cdecl, __fastcall, veya __stdcall belirtilen çağrı kuralı kullanır.Sayılarda bağımsız değişken kullanır her zaman alır bir üye işlev __cdecl çağırma.
__cdecl özellikleri
C, __cdecl kuralını kullanır işlev adı adlandırma önünde bir alt çizgi ( _ ); büyük bir çeviri gerçekleştirilir.Olarak bildirilmiş olmadıkça extern "c" C++ işlevleri, farklı bir ad decorating düzeni kullanın.Daha fazla bilgi için bkz. Süslenmiş adları.
__fastcall özellikleri
Bazıları bir __fastcall işlevinin bağımsız değişkenleri kayıtlarına geçirilen (x 86 işlemcileri, ecx ve edx), ve geri kalan kalan bu da yığına sağdan sola.Verdiği önce çağrılan yordam bu bağımsız değişkenler yığından POP.Genellikle, /Gr yürütme zamanı azaltır.
[!NOT]
Kullanırken dikkatli olun __fastcall satır içi assembly dilinde yazılmış herhangi bir işlev çağırma.Kayıtları kullanımınızı derleyici 's kullanımı ile çakışıyor.
C, __fastcall kuralını kullanır işlev adı adlandırma önünde bir at işareti (@) işlevinin bağımsız değişkenleri bayt cinsinden boyutunu arkasından.Büyük bir çeviri yapılır.Derleyici aşağıdaki şablonu için adlandırma kuralını kullanır:
@function_name@number
Kullanırken __fastcall adlandırma kuralı, standart içerik dosyaları kullanın.Aksi halde, çözülmemiş dış başvurular elde edersiniz.
çaðrý standardýný özellikleri
A __stdcall işlevin bağımsız kalan bu da yığına sağdan sola ve verdiği önce çağrılan işlev bu bağımsız değişkenler yığından POP.
C, __stdcall kuralını kullanır işlev adı adlandırma önünde bir alt çizgi ( _ ) ve arkasından bir at işareti (@) ve işlevin bağımsız bayt cinsinden boyutu.Büyük bir çeviri gerçekleştirilir.Derleyici aşağıdaki şablonu için adlandırma kuralını kullanır:
_functionname@number
x 86 özel
Bu seçenek ad deseni C++ yöntemleri ve işlevler üzerinde etkisi yoktur.Olarak bildirilmiş olmadıkça extern "c" C++ yöntemleri ve işlevleri farklı bir ad decorating düzeni kullanın.Daha fazla bilgi için bkz. Süslenmiş adları.
Arama kuralları hakkında daha fazla bilgi için bkz: Arama kuralları.
Son x 86 özel
Visual Studio geliştirme ortamındaki bu derleyici seçeneğini ayarlamak için
Projenin Özellik Sayfaları iletişim kutusunu açın.Ayrıntılar için bkz. Nasıl yapılır: Proje özellik sayfalarını açın.
Tıklatın c/C++ klasörü.
Tıklatın Gelişmiş özellik sayfası.
Değiştirmek Çağırma kuralı özelliği.
Bu derleyici seçeneği programlı olarak ayarlamak için
- Bkz: CallingConvention