title image


Smiley Re: Parameter, lokale und globale Variablen
>>Der Compiler (Cross) erzeugt keine Fehlermeldung

Und das ist auch gut so ;)

>>aber einen Code der überhaupt gar nicht funktioniert und obendrein Stackfehler erzeugt

So richtig mit Absturz? Hau den Compiler in die Tonne!

>>ja fälschlicherweise die globale Variable var3 anstelle der im Aufruf übergebenen var1

Nö, ist grad umgekehrt



Eigentlich ists ja so (ist die tabelle erkennbar?):



Globale Variablen: var1, var2, var3

Code will var3 haben (1)

Lokale Variablen / Parameter: var3

Code will var3 haben (2)







Die globalen Variablen gelten eigentlich immer (1) in jeder Funktion. Wenn aber eine lokale Variable in einer Funktion mit dem gleichen Namen definiert ist (2), ist die globale Variable "versteckt", und es wird immer die lokale Variable verwendet.

Die "lokaleren" Variablen sind immer wichtiger als die "globaleren".



Ich bin mir jetzt in C allerdings nicht 100%ig sicher, in C++ funktioniert's jedenfalls genau so. Das nennt sich dann "namespace" und ist was irre praktisches, wenn man weiß, wie ;)

Es ist möglich, dass das in C nicht funktionieren darf (wo sind die echten C-Gurus?), in diesem Fall wechsle den Compiler ;)



CU


Dieser Beitrag ist gratis und vom Umtausch ausgeschlossen.

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: