static in ANSI-C wozu wird dieser Datentyp normalerweise verwendet?



  • Ich habe diesen "genialen" Datentypen zufällig entdeckt, und benutze ihn, um lokale Variablen nach dem Wiederaufruf der Funktion in dem Sinne verfügbar zu haben, daß die Funktion ein "Gedächtnis" hat, was beim vorangeganenen Funktionsaufruf stattgefunden hat. Um zu vermeiden, daß man diese Werte global ablegen muß.

    Wäre interessiert mal Hinweise zu erhalten, wofür der Datentyp normalerweise eingesetzt wird, bzw. wofür er ursprünglich gedacht war bzw. ob und wofür ihn andere Teilnehmer hier benutzen.

    Brainstorming, sozusagen.

    LG Alex



  • static ist kein typ, sondern ein storage qualifier...


  • Mod

    "static" kann je nach Zusammenhang allerlei bedeuten. Für Funktionslokale Variablen bedeutet er genau das was du beschrieben hast: Eine Variable die für diese Funktion quasi global ist. Und genau dafür ist das auch gedacht.

    Und irgendwie habe ich das ungute Gefühl, dass dies eine Scherzfrage ist.



  • SeppJ schrieb:

    "static" kann je nach Zusammenhang allerlei bedeuten. Für Funktionslokale Variablen bedeutet er genau das was du beschrieben hast: Eine Variable die für diese Funktion quasi global ist. Und genau dafür ist das auch gedacht.

    Und irgendwie habe ich das ungute Gefühl, dass dies eine Scherzfrage ist.

    Das ist überhaupt keine Scherzfrage.

    Ich hatte das PRoblem, den Konsolen-Bildschirm nach dem Aufruf von überblendenden Fenstern wiederherzustellen, in Bereichen, wo gescrollt wird, und wo man die aktuellen Daten vom Scrolling ablegen soll. Ich wollte die lokalen Daten nicht als global ablegen, und war am Grübeln und bin auf diesen Datentyp gestoßen, der, wie ich höre, kein Datentyp ist, sondern ein storage qualifier.

    Was ja auch richtig ist. Er wird unter einer festen Speicheradresse abgelegt, die wahrscheinlich (???) im Kopf der Funktion auszulesen ist. Und wie ich vermute, dem Hauptprogramm nicht bekannt ist, so daß sie nicht überschrieben werden kann.

    Wollte nur mal hören, wie andere diesen storage type einsetzen.

    LG Alex



  • alex2010 schrieb:

    Er wird unter einer festen Speicheradresse abgelegt, die wahrscheinlich (???) im Kopf der Funktion auszulesen ist.

    ???
    Im Kopf auszulesen?
    Für eine Adresse eines Objektes ist der Adressoperator & zuständig, darüber "liest man die Speicheradresse aus".



  • OT: Sag mal Wutz, bist Du heute mit dem falschen Fuss aufgestanden? Das ist in einer halben stunde mindestens der dritte thread in dem Dein ton unter aller sau ist - mit verlaub!


Anmelden zum Antworten