Справочник Пользователя для C Control Pro application board Mega 128 198258

Модели
198258
Скачать
Страница из 200
78
C-Control Pro Mega Series
© 2005 Conrad Electronic
Funktionen erzeugen lokale Variablen. Lokale Variablen sind nur innerhalb der Funktion
erreichbar. Ein Beispiel:
int a,b;
void func1(void)
{
    int a,x,y;
    
// globale b ist zugreifbar
    
// globale a ist nicht zugreifbar da durch lokale a verdeckt
    
// lokale x,y sind zugreifbar
    
// u ist nicht zugreifbar da lokal zu Funktion main
}
void main(void)
{
    int u;
    
// globale a,b sind zugreifbar
    
// lokale u ist zugreifbar
    
// x,y nicht zugreifbar da lokal zu Funktion func1
}
Globale Variablen haben einen definierten Speicherbereich, der während des gesamten
Programmlaufs zur Verfügung steht. 
 Bei Programmstart werden die globalen Variablen mit null initialisiert.
Lokale Variablen werden, während der Berechnung einer Funktion, auf dem Stack angelegt. Das
heißt, lokale Variablen existieren im Speicher nur während des Zeitraums, in der die Funktion
abgearbeitet wird.
Wird bei lokalen Variablen der gleiche Name gewählt wie bei einer globalen Variable, so verdeckt
die lokale Variable die globale Variable. Solange sich das Programm dann in der Funktion aufhält
wo die namensgleiche lokale Variable definiert wurde, ist die globale Variable nicht ansprechbar.
Static Variablen
Man kann bei lokalen Variablen die Eigenschaft static vor den Datentyp setzen.
void func1(void)
{
    static int a;
}
Static Variablen behalten im Gegensatz zu normalen lokalen Variablen ihren Wert auch, wenn die
Funktion verlassen wird. Bei einem weiteren Aufruf der Funktion hat die statische Variable den
gleichen Inhalt wie beim Verlassen der Funktion. Damit der Inhalt einer static Variable bei dem
ersten Zugriff definiert ist, werden statische Variablen wie globale auch bei Programmstart mit null
initialisiert.