Aber, wenn du Zugang zur Variable von allen Funktionen in der gesamten Quellakte benötigst, dieses Dose auch getan mit dem statischen Schlüsselwort, aber, durch das Setzen der Definition außerhalb aller Funktionen. Z.B.:
#include <stdio.h>
static int num = 10; /* von der gesamten Quellakte zugänglich sein */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Und es gibt auch Fälle, in denen eine Variable vom gesamten Programm zugänglich sein muß, das aus einigen Quellakten bestehen kann. Dieses wird ein globales variables genannt und sollte vermieden werden, wenn es nicht angefordert wird.
Dieses wird auch getan, indem man die Definition außerhalb aller Funktionen, aber setzt, ohne das statische Schlüsselwort zu verwenden:
#include <stdio.h>
int num = 10; /* vom gesamten Programm zugänglich sein! */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
Es gibt auch das extern Schlüsselwort, das für zugänglich machende globale Variablen in anderen Modulen verwendet wird. Es gibt auch einige nähere Bestimmungen, die du variablen Definitionen hinzufügen kannst. Das wichtigste von ihnen ist const. Eine Variable, die definiert wird, da const möglicherweise nicht geändert werden kann.
Es gibt zwei weitere Modifizierfaktoren, die weniger allgemein verwendet sind. Der löschbare und Registermodifizierfaktor. Der löschbare Modifizierfaktor erfordert den Kompilator, die Variable wirklich zugänglich zu machen, jedesmal wenn es gelesen wird. Er kann möglicherweise nicht die Variable optimieren, indem er sie in einem Register oder so setzt. Dieses wird hauptsächlich für das Multithreading und Unterbrechung Zwecke etc. verarbeitend verwendet.
Der Registermodifizierfaktor verlangt den Kompilator, die Variable in ein Register zu optimieren. Dieses ist mit Selbstvariablen nur möglich und in vielen Fällen kann der Compiler in Register zu optimieren Variablen verbessern auserwählt die, also ist dieses Schlüsselwort obsolescent. Die einzige direkte Konsequenz des Bildens eines variablen Registers ist, daß seine Adresse nicht genommen werden kann.
Die Variablentabelle, gegeben in der folgenden Seite beschreibt die Speicherkategorie von Art fünf der Speicherkategorien.
In der Tabelle sehen wir, daß das extern Schlüsselwort in zwei Reihen gelegt wird. Das extern Schlüsselwort wird in den Funktionen verwendet, um eine statische externe Variable zu erklären, die anderwohin definiert wird.
Variable Speicherkategorie |
Wie definiert |
Bereich |
Kategorie |
Schlüsselwort |
Automatic |
Keyword is optional |
Temporary |
In a function |
Local |
Static |
static |
Temporary |
In a function |
Local |
Register |
register |
Temporary |
In a function |
Local |
External |
Optional |
Permanent |
Outside a function |
Global (all files) |
External |
Static |
Permanent |
Outside a function |
Global (one file) |
|