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

  • AutoklubZAPRESIC

    AutoklubZAPR

    17 Mayıs 2011
  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012