C extern-Schlüsselwort

C-Variablen

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

#include <stdio.h>

// 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

#include <stdio.h>

// 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

#include <stdio.h>

void printMessage() {
    printf("Hallo von printMessage!\n");
}

2. Deklariere und verwende die Funktion (in einer anderen Datei, file2.c)

Beispiel

#include <stdio.h>

// 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 PunkteBeschreibung
Definition und InitialisierungExterne Variablen müssen in einer Datei definiert und initialisiert und in anderen Dateien nur deklariert werden.externDeklarationen können nicht initialisiert werden.
GeltungsbereichexternVariablen und Funktionen haben globalen Gültigkeitsbereich und sind überall im Programm zugänglich.
NeudefinitionVermeiden Sie, dieselben Variablen oder Funktionen in mehreren Dateien wiederholt zu definieren, da dies zu Linker-Fehlern führen würde.
Verwendung von Header-DateienNormalerweiseexternLegen 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:

#ifndef VARIABLES_H
#define VARIABLES_H

// Externe Variable deklarieren
extern int d;
extern int f;

#endif

Code der Datei functions.h:

#ifndef 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 <stdio.h>
#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 <stdio.h>
#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.


C-Variablen

Weitere Erweiterungen