Linker, Loader und ausführbare Formate
Welche Kombination der obigen globalen Variablen wird im Allgemeinen in der Section .bss abgelegt?
int a = 5;
int b;
static int c = 0;
const int d = 7;
- Aa und b
- Bb und c
- Cc und d
Antwort und Erläuterung anzeigen
Antwort: B. b und c
a hat einen von 0 verschiedenen Initialwert und liegt daher in .data; b hat keinen Initialwert und beginnt mit 0, liegt also in .bss; c hat den Initialwert 0, sodass keine 0 in der Datei gespeichert werden muss, und liegt in .bss. d ist eine const-Konstante und liegt in der schreibgeschützten Section .rodata. static bestimmt, ob das Symbol von anderen Dateien sichtbar ist; welche Section verwendet wird, richtet sich nach Initialwert und const.