1
Softwareentwicklung / Re:Globale, Initialisierte Variable in .bss!?
« am: 17. December 2010, 16:54 »Zitat
Warum wird diese Variable in den .bss-Teil gepackt?Die meisten Compiler packen uninitialisierte statische/globale Variablen in die _BSS Sektion, um das erzeugte Image (PE/ELF) auf Größe zu optimieren.
Statische/globale Variablen mit einem Wert müssen in die _DATA Sektion gepackt werden und belegen daher auch Bytes im Image auf der Festplatte oder anderem Speichermedium.
Die _BSS Sektion dagegen wird vom OS Loader im RAM angelegt und benötigt nur die Angabe der Größe der Sektion.
Da die gängigen Betriebssysteme den Speicher vor dem Laden "ausnullen", landen meist auch die mit dem Wert Null initialisierten Variablen in der _BSS Sektion.
Aber das alles ist letztendlich Compilerspezifisch wo was in welcher Sektion landet.
Gruß
Greenhorn