/ 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