Linker, loader en uitvoerbare formaten
Wat is de juiste betekenis van „extern int count;” in C?
- AHet declareert dat de variabele count elders is gedefinieerd en reserveert hier geen ruimte
- BHet maakt een nieuwe variabele count en initialiseert die met 0
- 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.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten