-
-
Neuer Benutzer
Öfters hier
Gültigkeit lokaler Variablen bei Rückkehr aus Unterfunktion
Hallo,
habe zur Gültigkeit einer lokalen Variable eine Verständnisfrage.
Es heißt ja, das lokale Variablen nur im Anweisungsblock gültig sind.
Beispiel:
void test (void)
{
unsigned int lokale_var=100;
}
Wie ist es aber, wenn man den Bereich durch Aufruf einer Unterfunktion verläßt und nach deren Abarbeitung in die Funktion zurückkehrt. Ist die lokale Variable dann immer noch gültig, d.h. hat sie den gleichen Wert, oder ist es dann Zufall, wie wenn man sie nicht initialisiert hat?
Beispiel:
void test (void)
{
unsigned int lokale_var=100;
unterfunktion(); // mache dies und das, dann kehre zurück
}
Danke für eure Antwort.
-
Erfahrener Benutzer
Robotik Einstein
Die Variable bleibt gültig im gesamten Block, der durch die geschweiften Klammern eingeschlossen ist. Also solange die test() nicht endgültig verlassen wurde. Der unterfunktion()-Aufruf ändert nichts daran.
-
Erfahrener Benutzer
Roboter Genie
Die Variable bleibt solange gültig, bis Du die Funktion endgültig verlässt.
Sie behält also auch während der Abarbeitung der Unterfunktion ihren Wert, ist allerdings in der Unterfunktion selber nicht bekannt.
Gruß,
askazo
-
Neuer Benutzer
Öfters hier
Vielen Dank (@askazo und @uwegw) für die schnellen Antworten!
Habe gerade in meinen Unterlagen (PIC 18f4550 etc.) etwas zum Softwares
tack gefunden.
Wenn ich das richtig verstanden habe, werden dort lokale Parameter bei einem Unterfunktionsaufruf abgelegt. Deshalb liegen sie dann dort solange, bis die Funktion bei meinem Beispiel test() komplett abgearbeitet wurde, richtig?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen