Querdenker schrieb:
> Aaaaaalso...
> In den "normalen" C Büchern die ich gelesen habe steht, dass man nur
> soviel globale Variablen benutzen sollte, wie nötig. Also quasi sparsam
> mit ihnen umgehen.
Das ist auch richtig.
Allerdings gelten auf einem µC durch die knappen Resourcen eigene
Regeln.
EIgentlich möchte man keine globalen Variablen, auf der anderen Seite
hat man das Problem dass insbesondere globale Variablen es einem
erlauben die zur Laufzeit notwendigen Resourcen besser einzuschätzen.
> Und was wäre der Vorteil? *grübel*
Du willst nach Möglichkeit globale Variablen vermeiden, weil dann
Funktionen universeller benutzbar werden. Wenn es nur darum geht, eine
Variable neu zu beschreiben, dann ist
void foo()
{
c = ... irgendwas;
}
schlechter als
int foo()
{
return ... irgendwas;
}
int main()
{
....
c = foo();
}
weil ich dann dieselbe Funktion foo auch mit
e = foo();
f = foo();
benutzen kann (wenn die Funktion etwas allgemein Sinnvolles macht, was
man auch woanders brauchen kann).
Genausogut kann ich auch in die Funktion hinein Werte übergeben wenn ich
das will und wenn ich das Gefühl habe, dass es sich hier um eine
Funktion handelt, die sinnvoll wiederverwendet werden kann.
Funktionen die sich an globalen Variablen vergreifen sind immer an diese
Variablen gebunden und nicht leicht auf andere Situationen anpassbar. In
der normalen Programmierung ist das wesentlich häufiger der Fall als in
der µC-Programmierung, sodass man hier schon auch mal zu globalen
Variablen greift, wenn man das in der Desktop Programmierung nicht tun
würde.
Aber: Wie kommen da jetzt Pointer ins Spiel?