SORU
31 AĞUSTOS 2009, PAZARTESİ


C dış bağlantı ve iç bağlantı nedir

Dış bağlantı ve iç aksamları ve bunların farkı anlamak istiyorum. Ayrıca const herhangi bir değişken yoksa extern olarak ilan etmedikçe içten varsayılan bağlantı olup olmadığını bilmek istiyorum. Bu ne anlama geliyor?

CEVAP
31 AĞUSTOS 2009, PAZARTESİ


dudewat said gibidışbağlantı simgesi (fonksiyon veya global değişken) program boyunca erişilebilir anlamına gelirbağlantı yalnızca 15* *bir erişilebilir olduğu anlamına geliyor.

Açıkça extern static anahtar kelimeleri kullanarak bir sembolün bağlantı kontrol edebilirsiniz. Eğer bağlantı, belirtilen, değil mi eğer varsayılan bağlantı olmayanconst semboller extern const static (iç) simgeler.

// in namespace or global scope
int i; // extern by default
const int ci; // static by default
extern const int eci; // explicitly extern
static int si; // explicitly static

// the same goes for functions (but there are no const functions)
int foo(); // extern by default
static int bar(); // explicitly static 

İç bağlantı için static kullanmak yerine daha iyi içine de class anonymous namespaceses kullanım için olduğunu unutmayın. Anonim ad bağlantı C 98 C 11 arasında değişti ama ana şey diğer çeviri birimleri ulaşılamaz olmasıdır.

namespace {
   int i; // external linkage but unreachable from other translation units.
   class invisible_to_others { };
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ColdfusTion

    ColdfusTion

    3 Aralık 2007
  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010