SORU
25 HAZİRAN 2009, PERŞEMBE


C kaynağı, dış "C" etkisi nedir;?

Tam olarak C koduna extern "C" koyarak ne yapar?

Örneğin:

extern "C" {
   void foo();
}

CEVAP
25 HAZİRAN 2009, PERŞEMBE


"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 varBakı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) zorluyorBakı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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006