Linker, loader en uitvoerbare formaten
Welke eigenschap van de .bss-sectie is juist?
- AHet is het gebied waar lokale variabelen van een functie bij elke aanroep worden geplaatst
- BHet is het gebied voor variabelen zonder beginwaarde (of met 0); in het bestand wordt alleen de grootte vastgelegd en bij het laden wordt het met 0 gevuld
- CHet is een niet-beschrijfbaar gebied waar constante tekenreeksen staan
Antwoord en toelichting tonen
Antwoord: B. Het is het gebied voor variabelen zonder beginwaarde (of met 0); in het bestand wordt alleen de grootte vastgelegd en bij het laden wordt het met 0 gevuld
Globale en statische variabelen waarvoor geen beginwaarde is geschreven, beginnen volgens de regels van C op 0. Als de inhoud geheel uit nullen bestaat, is het verspilling om nullen in het bestand op te slaan, dus legt de .bss-sectie alleen de grootte vast en reserveert de loader geheugen en vult dat met 0. Bij bijvoorbeeld „static char buf[1000000];” wordt het uitvoerbare bestand niet 1 MB groter.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten