C kaynağı, dış "C" etkisi nedir;?
Tam olarak C koduna extern "C"
koyarak ne yapar?
Örneğin:
extern "C" {
void foo();
}
CEVAP
"C" bir fonksiyon adı C 'C' C istemci kodu için link yani bağlantı (derleyici adı mangle) (i.dış e) işlevi, bir 'C' uyumlu header fonksiyonu sadece Bildirgesi'ni içeren dosya. İşlev tanımı ikili bir biçim içinde bulunan C derleyici tarafından derlenen () istemci 'C' linker sonra 'C' adını kullanarak bağlantı.
Beri C aşırı fonksiyon isimleri ve C değil, C compiler cannot sadece işlev adı olarak benzersiz bir kimlik bağlamak için, parçalar adını ekleyerek bilgi ile ilgili tartışmalar. Bir C compiler gerek yok merdaneyle beri adı değil aşırı fonksiyon isimleri C. Zaman devletin bir işlevi vardır dış "C" bağlantı C , C derleyici Ekle argüman/parametre bilgileri adı kullanılan bağlantı.
Sadece bil diye belirtebilirsiniz "C" tanımını açıkça/veya bildirimleri/tanımları bir dizi belirli bir bağlantı için grup için bir blok kullanmak her bireyin bildirimi için bağlantı:
extern "C" void foo(int);
extern "C"
{
void g(char);
int i;
}
Eğer teknik değer veriyorsan, C 03 standart bölüm 7.5 listelenen, burada kısa bir özetidir dış üzerinde durularak ("C"):
- dış "C" bağlantı-belirtimi
- Her derleyicigereklisağlamak için "C" bağlantı
- bağlantı belirtimi ad kapsamı sadece meydana gelecektir
tüm fonksiyon çeşitleri, fonksiyon isimleri ve değişken adları bağlantı bir dili var Bakın Richard'ın Yorum:Dış bağlantı isimleri ve değişken isimleri tek fonksiyonu bağlantı bir dili var- farklı dil bağlantıları ile iki fonksiyon çeşitleri aksi halde aynı olsa bile farklı türleri vardır
- bağlantı özellikleri son bağlantı belirler yuva, iç
- dış "C" sınıfı üyeleri için göz ardı edilir
- en azından belirli bir isim ile bir işlevi olabilir "C" bağlantı (ad ne olursa olsun)
dış "C" fonksiyonu harici bağlantı (veya statik) zorluyor Bakın Richard'ın yorum:'statik' içeride '"C"' geçerli değil; bir varlık bu yüzden ilan iç bağlantı vardır, ve bu yüzden dil bir bağlantı yok . dışarıdan- Diğer dillerden nesneleri C olarak tanımlanan nesneleri diğer dillerde tanımlanan ve C bağlantı uygulama tanımlı ve dile bağlı. İki dil uygulamaları nesne düzeni stratejileri yeterince benzer, sadece bu tür bir bağlantı elde edilebilir
Python modülleri "liste=liste&quo...
&Quot;sıkı" kullanın; JavaScript, ...
Kabuk, " nedir; 2>&1 " dem...
Çeşitli "eylem Oluştur&; Visual S...
Düğüm nedir.' Bağlantı js, Expres...