C-Programmierung

Globale Variablen

Lokale Variablen | | Seiteneffekte

Bei ausserhalb des Funktionsblocks definierten Variablen spricht man von globalen Variablen, da sie im gesamten Quellcode (ab der Stelle der Definition) sichtbar sind.

double y;               /* global variable */

void print_value()      /* procedure */
{
   printf("%y=g\n", y);
}

int main()              /* main function */
{
   y=0;
   printvalue();        /* procedure call */
}

Modifiziert man eine globale Variable, so betrifft das den ganzen Quellcode → schwer nachvollziehbar.

Modifiziert man eine lokale Variable oder einen Parameter einer Funktion so hat dies keinen Effekt über den Funktionsrumpf und die Dauer des aktuellen Aufrufs hinaus, nur die lokale Instanz ist betroffen (Lokalitätsprinzip bzw. Privatisierungseffekt).

Besser:

void print_value(double y) /* function */
{
   printf("%y=g\n", y);
}

int main()                 /* main function */
{
   double y=0;
   printvalue(y);          /* function call */
}


Lokale Variablen | | Seiteneffekte

Options: