Joachim schrieb:
> Da schrieb jemand in einem älteren Thread:
>
> static - Wenn du eine globale Variable mit static deklarierst, ist diese
>
> nur innerhalb der Übersetzungseinheit, also in dem c-file wo du diese
>
> anlegst sichtbar. Ausserhalb der Übersetzungseinheit kann auf diese
>
> Variable nicht zugegriffen werden.
>
>
>
> Klar.
>
> Aber was macht ich wenn ich die Variable in einer anderen Datei brauche?
Eine Schnittstellenfunktion schreiben, die als Rückgabeparameter jene
besagte static-Variable dem Aufrufer der anderen Übersetzungseinheit
kopiert?
Das nennt man Datenkapselung und kommt aus der Objekt orientierten
Programmierung.
/* Schnittstelle für Zugriff auf Static Variable */
z. B. uint8 GetStaticVariableFromKomponente(void);
uint8 GetStaticVariableFromKomponente(void)
{
return StaticVariable;
}
Die Funktion "GetStaticVariableFromKomponente" muß dann ebenfalls in der
gleichen C-Datei sich befinden, wo die Static Variable deklariert ist.
In der Header-Datei dieser C-Datei wird dann über
extern GetStaticVariableFromKomponente(void);
der Zugrif öffentlich gemacht.
Man kann sie auch in der verwendeteten anderen C-Datei eintragen. Das
wird mit zunehmender Komplexität unübersichtlich.
Vielleicht hilft mein Vorschlag weiter. Viel Erfolg