Scope

0

Nachdem Sie nun verstehen, wie Funktionen funktionieren, ist es wichtig zu lernen, wie sich Variablen innerhalb und außerhalb von Funktionen verhalten.

In C sind Variablen nur innerhalb des Bereichs zugänglich, in dem sie erstellt werden. Dies wird als Gültigkeitsbereich bezeichnet.

Lokaler Geltungsbereich

Eine innerhalb einer Funktion erstellte Variable gehört zum lokalen Gültigkeitsbereich dieser Funktion und kann nur innerhalb dieser Funktion verwendet werden:

Beispiel

void myFunction() {
  // Local variable that belongs to myFunction
  int x = 5;

  // Print the variable x
  printf("%d", x);
}

int main() {
  myFunction();
  return 0;
}

Eine lokale Variable kann nicht außerhalb der Funktion verwendet werden, zu der sie gehört.

Bei einem Versuch, außerhalb der Funktion darauf zuzugreifen, tritt ein Fehler auf:

Beispiel

void myFunction() {
  // Local variable that belongs to myFunction
  int x = 5;
}

int main() {
  myFunction();

  // Print the variable x in the main function
  printf("%d", x);
  return 0;
}

Globaler Umfang

Eine außerhalb einer Funktion erstellte Variable wird als globale Variable bezeichnet und gehört zum globalen Gültigkeitsbereich.

Globale Variablen sind in jedem Bereich verfügbar, global und lokal:

Beispiel

Eine außerhalb einer Funktion erstellte Variable ist global und kann daher von jedem verwendet werden:

// Global variable x
int x = 5;

void myFunction() {
  // We can use x here
  printf("%d", x);
}

int main() {
  myFunction();

  // We can also use x here
  printf("%d", x);
  return 0;
}

Variablen benennen

Wenn Sie innerhalb und außerhalb einer Funktion mit demselben Variablennamen arbeiten, behandelt C sie als zwei separate Variablen; eine, die im globalen Bereich (außerhalb der Funktion) verfügbar ist, und eine, die im lokalen Bereich (innerhalb der Funktion) verfügbar ist:

Beispiel

Die Funktion druckt das lokale x, und anschließend druckt der Code das globale x:

// Global variable x
int x = 5;

void myFunction() {
  // Local variable with the same name as the global variable (x)
  int x = 22;
  printf("%d\n", x); // Refers to the local variable x
}

int main() {
  myFunction();

  printf("%d\n", x); // Refers to the global variable x
  return 0;
}

Sie sollten jedoch vermeiden, denselben Variablennamen sowohl für globale als auch für lokale Variablen zu verwenden, da dies zu Fehlern und Verwirrung führen kann.

Generell sollten Sie mit globalen Variablen vorsichtig sein, da diese von jeder Funktion aus aufgerufen und geändert werden können:

Beispiel

Ändern Sie den Wert von x von myFunction:

// Global variable
int x = 5;

void myFunction() {
  printf("%d\n", ++x); // Increment the value of x by 1 and print it
}

int main() {
  myFunction();

  printf("%d\n", x); // Print the global variable x
  return 0;
}

// The value of x is now 6 (no longer 5)

Abschluss

To sum up, use local variables (with good variable names) as much as you can. This will make your code easier to maintain and better to understand. However, you may find global variables when working on existing C programs or while collaborating with others. Therefore, it is good to understand how the scope works and how to use it effectively to make sure your code is clear and functional.

Nach oben scrollen