Linker, loader en uitvoerbare formaten

In welke sectie wordt in het algemeen de globale variabele „int limit = 100;” geplaatst, buiten een functie in C geschreven?

  1. ADe .data (data met beginwaarde)
  2. BDe .bss (data zonder beginwaarde)
  3. CDe .text (machinecode)
Antwoord en toelichting tonen

Antwoord: A. De .data (data met beginwaarde)

Globale en statische variabelen met een beginwaarde ongelijk aan 0 komen in de .data-sectie en hun beginwaarde wordt in het bestand opgeslagen. Bij het laden van het programma wordt deze inhoud ongewijzigd naar het geheugen gekopieerd, dus bij de start van main is limit 100. .data kan tijdens uitvoering worden herschreven en is dus een gebied waarin lezen en schrijven is toegestaan.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Welke eigenschap van de .bss-sectie is juist?
  2. Het uitvoeren van het C-fragment „char *p = "hello"; p[0] = 'H';” leidt in veel omgevingen tot abnormale beëindiging. Wat is de juiste reden?
  3. Welke combinatie van de bovenstaande globale variabelen staat in het algemeen in de .bss-sectie?
  4. Waar wordt tijdens uitvoering een in een C-functie gedeclareerde lokale variabele (automatische variabele) zonder static geplaatst?
  5. Uit welk gebied van het proces wordt het met malloc in C gereserveerde geheugen in het algemeen genomen?

Vergelijkingen bij dit onderwerp