Hallo,
um die Übersichtlichkeit in meinem Programm zu erhöhen und es leichter
zu handhaben gliedere ich gerade einige Programmabschnitte in
Unterprogramme aus.
Nun habe ich aber eine Variablen, die sich nicht bei jedem
Unterprogrammaufruf neu initialisieren sollen, wie zum Beispiel Zähler,
die pro Aufruf eins hinzuaddieren.
Gibt es eine Möglichkeit in C, die eine Variable nur initialisiert, wenn
sie es noch nicht ist?
Im Sinne von:
1 |
|
2 | void unterprogramm(void)
|
3 | {
|
4 | if( !is_initialisiert(counter))
|
5 | uint8_t counter = 0;
|
6 | }
|
Andere Möglichkeiten wären natürlich die Variable als volatile außerhalb
des Programms zu deklarieren oder sie an das Überliegende Programm per
return zu übergeben.
Ersteres soll sich ja schlecht auf die Performance auswirken, zweiteres
hätte eigentlich nur den Nachteil, dass man vergessen könnte, die
Variable raus zu nehmen, wenn man das Unterprogramm entfernt.
Wie wird sowas in der Praxis gehandhabt?
Wie mache ich es am effektivsten?
Gruß