Linker, loader en uitvoerbare formaten

Wat is de juiste betekenis van „extern int count;” in C?

  1. AHet declareert dat de variabele count elders is gedefinieerd en reserveert hier geen ruimte
  2. BHet maakt een nieuwe variabele count en initialiseert die met 0
  3. CHet maakt de variabele count onzichtbaar buiten dit bestand
Antwoord en toelichting tonen

Antwoord: A. Het declareert dat de variabele count elders is gedefinieerd en reserveert hier geen ruimte

extern is een declaratie dat de variabele met deze naam in een ander bestand of elders is gedefinieerd en reserveert geen geheugenruimte. De compiler maakt instructies die count raadplegen zonder het adres te kennen en legt die plaats vast in de relocatie-informatie. De linker koppelt die aan een definitie zoals „int count = 0;” in een ander bestand en bepaalt het adres. Het uitgangspunt is de extern-declaratie in een headerbestand te schrijven en de definitie in één bronbestand te plaatsen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Welke uitspraak over het ELF-formaat, dat veel op Linux wordt gebruikt, is juist?
  2. Wat staat er in de .text-sectie van een uitvoerbaar bestand?
  3. In welke sectie wordt in het algemeen de globale variabele „int limit = 100;” geplaatst, buiten een functie in C geschreven?
  4. Welke eigenschap van de .bss-sectie is juist?
  5. 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?

Vergelijkingen bij dit onderwerp