C extern-Schlüsselwort
In der Sprache C, unter Verwendung vonexternVariablen, die mit dem extern-Schlüsselwort deklariert werden, sind externe Variablen; dies zeigt an, dass die Variable an anderer Stelle (normalerweise in einer anderen Datei) definiert ist.
externDas extern-Schlüsselwort wird in C verwendet, um externe Variablen oder Funktionen zu deklarieren, sodass sie über mehrere Dateien hinweg gemeinsam genutzt und verwendet werden können.
externEs wird hauptsächlich verwendet, um modulare Programmierung und Code-Trennung zu implementieren.
externDie Deklaration und Definition von Variablen werden normalerweise in verschiedenen Dateien platziert.
Externe Variable
Das Folgende zeigt, wie man eine externe Variable in einer Datei definiert und sie in einer anderen Datei deklariert und verwendet.
1. Definieren und initialisieren (in einer Datei, file1.c)
Beispiel
// Externe Variablen definieren und initialisieren
int d = 3;
int f = 5;
void printExternVariables() {
printf("d: %d, f: %d\n", d, f);
}
2. Deklarieren und verwenden (in einer anderen Datei, file2.c)
Beispiel
// Externe Variable deklarieren
extern int d;
extern int f;
// Die externe Funktion deklarieren (muss vor dem Aufruf deklariert werden)
extern void printExternVariables();
int main() {
// Externe Variable verwenden
printf("d in main: %d\n", d);
printf("f in main: %d\n", f);
// Rufe eine in einer anderen Datei definierte Funktion auf
printExternVariables();
return 0;
}
Kompiliere und führe file1.c und file2.c zusammen aus (siehe Kompilierungsbefehl unten), die Ausgabe ist:
d in main: 3 f in main: 5 d: 3, f: 5
externe Funktion
Ähnlich wie Variablen können Funktionen auch in einer Datei definiert und in einer anderen Datei deklariert und verwendet werden.
1. Definiere eine Funktion (in einer Datei, file1.c)
Beispiel
void printMessage() {
printf("Hallo von printMessage!\n");
}
2. Deklariere und verwende die Funktion (in einer anderen Datei, file2.c)
Beispiel
// Externe Funktion deklarieren
extern void printMessage();
int main() {
// Externe Funktion aufrufen
printMessage();
return 0;
}
3. Kompilieren mehrerer Dateien
Um externe Variablen und Funktionen zu verwenden, müssen alle zugehörigen Dateien zusammen kompiliert werden. Zum Beispiel:
gcc file1.c file2.c -o program ./program
Nach dem Kompilieren und Ausführen des obigen Funktionsbeispiels lautet die Ausgabe:
Hello from printMessage!
Hinweise
NutzungexternDie folgenden Punkte sollten beachtet werden:
| Zu beachtende Punkte | Beschreibung |
|---|---|
| Definition und Initialisierung | Externe Variablen müssen in einer Datei definiert und initialisiert und in anderen Dateien nur deklariert werden.externDeklarationen können nicht initialisiert werden. |
| Geltungsbereich | externVariablen und Funktionen haben globalen Gültigkeitsbereich und sind überall im Programm zugänglich. |
| Neudefinition | Vermeiden Sie, dieselben Variablen oder Funktionen in mehreren Dateien wiederholt zu definieren, da dies zu Linker-Fehlern führen würde. |
| Verwendung von Header-Dateien | NormalerweiseexternLegen Sie die Deklarationen in einer Header-Datei ab und binden Sie diese Header-Datei dann in die Quelldateien ein, die sie benötigen. |
Einsatz von Header-Dateien
Um die Verwaltung zu vereinfachen, können Sie eine Header-Datei verwenden, um extern-Variablen und -Funktionen zu deklarieren.
Code der Datei variables.h:
#define VARIABLES_H
// Externe Variable deklarieren
extern int d;
extern int f;
#endif
Code der Datei functions.h:
#define FUNCTIONS_H
// Externe Funktion deklarieren
void printExternVariables();
void printMessage();
#endif
Binden Sie dann die Header-Datei in die Quelldatei ein:
Code der Datei file1.c:
#include "variables.h"
#include "functions.h"
// Externe Variablen definieren und initialisieren
int d = 3;
int f = 5;
void printExternVariables() {
printf("d: %d, f: %d\n", d, f);
}
void printMessage() {
printf("Hallo von printMessage!\n");
}
Code der Datei file2.c:
#include "variables.h"
#include "functions.h"
int main() {
// Externe Variable verwenden
printf("d in main: %d\n", d);
printf("f in main: %d\n", f);
// Externe Funktion aufrufen
printExternVariables();
printMessage();
return 0;
}
Verwenden Sie außerdemgcc file1.c file2.c -o programKompilieren und ausführen, das Ausgabeergebnis ist:
d in main: 3 f in main: 5 d: 3, f: 5 Hello from printMessage!
Auf diese Weise macht die Verwaltung von extern-Deklarationen über Header-Dateien den Code klarer und einfacher zu warten.
Weitere Erweiterungen