Linker, loader en uitvoerbare formaten

Welke combinatie van de bovenstaande globale variabelen staat in het algemeen in de .bss-sectie?

int a = 5;
int b;
static int c = 0;
const int d = 7;
  1. Aa en b
  2. Bb en c
  3. Cc en d
Antwoord en toelichting tonen

Antwoord: B. b en c

a heeft een beginwaarde ongelijk aan 0 en komt dus in .data; b heeft geen beginwaarde en begint op 0, dus .bss; c heeft beginwaarde 0, dus hoeven geen nullen in het bestand te worden opgeslagen en komt het in .bss. d is een const-constante en komt in de tegen schrijven beveiligde .rodata. static bepaalt of iets vanuit andere bestanden zichtbaar is; in welke sectie iets komt, wordt bepaald door de beginwaarde en const.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Waar wordt tijdens uitvoering een in een C-functie gedeclareerde lokale variabele (automatische variabele) zonder static geplaatst?
  2. Uit welk gebied van het proces wordt het met malloc in C gereserveerde geheugen in het algemeen genomen?
  3. Welke volgorde van de geheugenindeling van een gangbaar proces op Linux en dergelijke, van laag naar hoog adres, is juist?
  4. Welk voordeel is juist van de indeling waarin heap en stack van een proces in tegengestelde richting groeien met ertussen een breed vrij gebied?
  5. Welke omschrijving van statisch linken is juist?

Vergelijkingen bij dit onderwerp