Maar als u toegang tot de variabele van alle functies in het volledige brondossier nodig hebt, kan dit ook gedaan met het statische sleutelwoord, maar door de definitie buiten alle functies te zetten. Bijvoorbeeld:
#include <stdio.h>
static int num = 10; /* van volledig brondossier toegankelijk zal zijn */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
En er zijn ook gevallen waar een variabele van het volledige programma toegankelijk moet zijn, dat uit verscheidene brondossiers kan bestaan. Dit wordt genoemd globale veranderlijk en zou moeten worden vermeden wanneer het niet wordt vereist.
Dit wordt ook gedaan door de definitie buiten alle functies, maar te zetten zonder het gebruiken van het statische sleutelwoord:
#include <stdio.h>
int num = 10; /* van volledig programma toegankelijk zal zijn! */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Er is ook het extern sleutelwoord, dat voor de toegang tot van globale variabelen in andere modules wordt gebruikt. Er zijn ook een paar bepalende woorden die u aan veranderlijke definities kunt toevoegen. Het belangrijkst van hen is const. Een variabele die als const wordt gedefinieerd kan niet worden gewijzigd.
Er zijn twee meer bepalingen die minder algemeen worden gebruikt. De vluchtige stof en registerbepaling. De vluchtige bepaling vereist de compiler om tot de variabele eigenlijk toegang te hebben telkens als het wordt gelezen. Het kan de variabele niet optimaliseren door het in een register te zetten of zo. Dit wordt hoofdzakelijk gebruikt voor multithreading en onderbreekt verwerkingsdoeleinden enz.
De registerbepaling verzoekt de compiler om de variabele in een register te optimaliseren. Dit is slechts mogelijk met autovariabelen en in vele gevallen kan de compiler de variabelen beter selecteren in registers te optimaliseren, zodat is dit sleutelwoord verouderd. Het enige directe gevolg van het maken van een veranderlijk register is dat zijn adres niet kan worden genomen.
De lijst van variabelen, die in de volgende pagina wordt gegeven beschrijft de opslagklasse van type vijf van opslagklassen.
In de lijst die wij het extern sleutelwoord geplaatst=wordt= in twee rijen hebben gezien. Het extern sleutelwoord wordt gebruikt in functies om een statische externe variabele te verklaren die elders wordt bepaald.
De veranderlijke klasse van de Opslag |
Bepaald als |
Werkingsgebied |
Klasse |
Sleutelwoord |
Automatisch |
Het sleutelwoord is facultatief |
Tijdelijk |
In een functie |
Lokaal |
Statisch |
statisch |
Tijdelijk |
In een functie |
Lokaal |
Register |
register |
Tijdelijk |
In een functie |
Lokaal |
Extern |
Facultatief |
Permanent |
Buiten een functie |
Globaal (alle dossiers) |
Extern |
Statisch |
Permanent |
Buiten een functie |
Globaal (één dossier) |
|