0Pricing
C Academy · Lektion

extern und global

Über Dateien hinweg teilen

extern und global ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Globale Variablen

Eine Variable, die außerhalb jeder Funktion deklariert wird, hat Datei-Gültigkeitsbereich und lebt während des gesamten Programms. Sie ist eine globale Variable.

#include <stdio.h>
int counter = 0;
void bump(void) {
    counter++;
}
int main(void) {
    bump();
    bump();
    printf("counter = %d\n", counter);
    return 0;
}

Globale Variablen werden gemeinsam verwendet

Jede Funktion in der Datei kann eine globale Variable lesen und schreiben. Das ist praktisch, führt aber leicht zu Missbrauch.

#include <stdio.h>
int score = 100;
void penalty(void) { score -= 25; }
void bonus(void) { score += 10; }
int main(void) {
    penalty();
    bonus();
    printf("score = %d\n", score);
    return 0;
}

Standardmäßige Initialisierung mit null

Globale Variablen ohne Initialisierer beginnen automatisch mit dem Wert 0.

#include <stdio.h>
int total;
int main(void) {
    printf("total = %d\n", total);
    return 0;
}

Das Schlüsselwort extern

extern deklariert eine globale Variable, die an anderer Stelle definiert wird. Es teilt dem Compiler mit, dass die Variable existiert, ohne Speicher für sie zu reservieren.

#include <stdio.h>
int shared = 5;
extern int shared;
int main(void) {
    printf("shared = %d\n", shared);
    return 0;
}

Deklaration und Definition

Eine Definition reserviert Speicher. Eine Deklaration benennt lediglich etwas. extern-Deklarationen reservieren keinen Speicher.

#include <stdio.h>
int value = 42;
int main(void) {
    extern int value;
    printf("value = %d\n", value);
    return 0;
}

Gemeinsame Verwendung über Dateien hinweg

In Projekten mit mehreren Dateien definiert eine .c-Datei die globale Variable. Andere Dateien verwenden extern in einem Header, um auf sie zugreifen zu können.

#include <stdio.h>
extern int globalCount;
int globalCount = 3;
int main(void) {
    printf("globalCount = %d\n", globalCount);
    return 0;
}

Auch Funktionen können extern sein

Funktionen haben standardmäßig eine externe Bindung. Daher ist ein Prototyp effektiv eine extern-Deklaration dieser Funktion.

#include <stdio.h>
extern void hello(void);
void hello(void) {
    printf("Hello from extern\n");
}
int main(void) {
    hello();
    return 0;
}

Lebensdauer globaler Variablen

Globale Variablen existieren vom Start bis zum Ende des Programms. Ihre Werte bleiben daher über alle Funktionsaufrufe hinweg erhalten.

#include <stdio.h>
int visits = 0;
void page(void) { visits++; }
int main(void) {
    page();
    page();
    page();
    printf("visits = %d\n", visits);
    return 0;
}

Risiken globaler Variablen

Da jeder Code eine globale Variable ändern kann, sind Fehler schwer nachzuverfolgen. Übergeben Sie Werte nach Möglichkeit als Parameter.

#include <stdio.h>
int config = 1;
int compute(int input) {
    return input * config;
}
int main(void) {
    printf("%d\n", compute(8));
    return 0;
}

Globale schreibgeschützte Variablen

Kombinieren Sie const mit einer globalen Variable, um eine gemeinsam verwendete Konstante zu erstellen, die niemand ändern kann.

#include <stdio.h>
const int MAX_USERS = 50;
int main(void) {
    printf("MAX_USERS = %d\n", MAX_USERS);
    return 0;
}

Praktisches Muster

Ein globaler Konfigurationswert, der von mehreren Funktionen gelesen wird, ist eine häufige und akzeptable Verwendung.

#include <stdio.h>
int multiplier = 3;
int scale(int x) { return x * multiplier; }
int main(void) {
    printf("%d\n", scale(4));
    printf("%d\n", scale(7));
    return 0;
}

Kurzer Test

Testen Sie Ihr Verständnis von extern und globalen Variablen.

Rückblick: extern und globale Variablen

Sie haben globale Variablen und externe Bindungen kennengelernt.

  • Globale Variablen haben Datei-Gültigkeitsbereich und Programmlaufzeit
  • Sie werden standardmäßig auf 0 gesetzt und von allen Funktionen gemeinsam verwendet
  • extern deklariert eine globale Variable, die an anderer Stelle definiert ist
  • Eine Definition reserviert Speicher, eine Deklaration benennt lediglich etwas
  • Verwenden Sie globale Variablen sparsam, um versteckte Kopplungen zu vermeiden

Häufig gestellte Fragen

Ist die Lektion „extern und global“ kostenlos?

Ja — der vollständige Text von „extern und global“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „extern und global“?

Über Dateien hinweg teilen Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C Academy zu starten?

Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „extern und global“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?

Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. auto und lokaler Gültigkeitsbereich
  2. static-Variablen
  3. extern und global
  4. register und const
← Zurück zu C Academy