Gast
#3677228
Hallo allerseits, ist es möglich das zwei Funktionen sich eine static Variable teilen, die sonst den anderen Funktionen nicht bekannt ist?
|
Anzeige
|
Zwei Funktionen teilen Static Variable
Gast
#3677228
Hallo allerseits, ist es möglich das zwei Funktionen sich eine static Variable teilen, die sonst den anderen Funktionen nicht bekannt ist?
Gast
#3677232
Nein, nicht im Sinne von "static local variable". Aber Du kannst eine Translation Unit mit zwei Funktionen haben, die beide auf eine "static global variable" zugreifen und außer den zwei Funktionen, keine weitere Funktionen beinhaltet.
Gast
#3677235
Wenn diese beiden Funktionen allein in einer .c Datei stehen in der die variable als "static" globale Variable definiert ist. Alternativ die Funktionen in eine Klasse packen und die Variable dort als private Member-Variable machen.
Gast
#3677242
Murkser schrieb: > Aber Du kannst eine Translation Unit mit zwei Funktionen haben, die > beide auf eine "static global variable" zugreifen und außer den zwei > Funktionen, keine weitere Funktionen beinhaltet. Kannst du mal ein einfaches Beispiel zeigen? Dieter Coba schrieb: > Kannst du mal ein einfaches Beispiel zeigen?
Gast
#3677334
Ja das geht, aber jede andere Funktion in der selben C-Datei könnte die Variable auch sehen und darauf zugreifen.
Gast
#3677337
Christian schrieb: > Ja das geht, aber jede andere Funktion in der selben C-Datei könnte die > Variable auch sehen und darauf zugreifen. Ja, das ist richtig. Aber in welcher Programmiersprache? :-)
Gast
#3677339
Bitflüsterer schrieb: > Christian schrieb: >> Ja das geht, aber jede andere Funktion in der selben C-Datei könnte die >> Variable auch sehen und darauf zugreifen. > > Ja, das ist richtig. Aber in welcher Programmiersprache? :-) Meine Güte. Ein Lesefehler. Sorry.
Gast
#3677409
Man kann die Variable per linker auf ein bestimmte Adresse im Speicher legen und in den beiden Funktionen einen pointer darauf haben. Christian schrieb: > Ja das geht, aber jede andere Funktion in der selben C-Datei könnte die > Variable auch sehen und darauf zugreifen. Und? Dann leg halt keine weiteren Funktionen da rein. Technisch sind statische Variablen in C sowieso nix anderes als globale Variablen mit eingeschränkter Sichtbarkeit. Sogar in C++, wo man Sichtbarkeitsbereiche beliebig schachteln kann, ist das am Ende technisch das gleiche. Alles nur syntaktischer Zucker. XL
Gast
#3677677
absolute v schrieb: > Man kann die Variable per linker auf ein bestimmte Adresse im Speicher > legen und in den beiden Funktionen einen pointer darauf haben. Das ist aber dann doch etwas übertrieben, nur um den Zugriff von anderen Funktionen aus zu unterbinden. Das selbe könnte man erreichen, indem man eben diese Zugriffe einfach nicht macht. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|