SORU
18 EYLÜL 2008, PERŞEMBE


Nerede statik değişkenler saklı (C/C )?

Ne kesimi (.SÜREKLİ spor modu, .Yürütülebilir bir dosya, VERİ, diğer statik değişkenler çarpışma isim yok ki saklı? Örneğin:


foo.c:                         bar.c:
static int foo = 1;            static int foo = 10;
void fooTest() {               void barTest() {
  static int bar = 2;            static int bar = 20;
  foo  ;                         foo  ;
  bar  ;                         bar  ;
  printf("%d,%d", foo, bar);     printf("%d, %d", foo, bar);
}                              }

Ben her iki dosya derleme ve fooTest çağıran bir ana bağlantı (eğer varsa) ve barTest tekrar tekrar, basit bir beşgen kullanmaktır artım bağımsız cümleler. Foo beri mantıklı ve bar değişkenleri çeviri birimine yerel.

Ama nereye depolama ayrılmış mı?

Açık olmak gerekirse, bu varsayım ELF formatında bir dosya çıktı bir zinciri var. Böylece, Beninanıyorumo oradavardırbazı uzay yürütülebilir ayrılmış olması bu statik değişkenler için dosya.< / ^ br . Tartışma amacıyla sağlar GCC araç zinciri kullanıyoruz varsayalım.

CEVAP
18 EYLÜL 2008, PERŞEMBE


Senin statik nereye olursa 0 başlatılmış olup olmadığı bağlıdır. 0 başlatılmış statik veri 0 veri başlatıldı .DATA gider sigara .BSS (Block Started by Symbol), Gider

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FASHTAG

    FASHTAG

    5 EYLÜL 2012
  • SPBedition

    SPBedition

    24 HAZİRAN 2013
  • WHZGUD2

    WHZGUD2

    21 EYLÜL 2011