static in einer Funktion deklariert und in anderer benutzt?



  • Hallo Leute,

    Wenn ich in einer Funktion ein static deklariere, kann ich dann auch von anderen Funktionen der Datei auf diese Variable zugreifen oder ist der Zugriff dann ausschliesslich auf die deklarierende Funktion beschraenkt?

    Ich moechte nicht oben in der Datei globale Variablen deklarieren, dann weiss ich spaeter nicht, wohin das gehoert und welche Funktion dafuer verantwortlich ist.

    also etwa so?

    void fkt1(void)
    {
        static int nummer=7;
    }
    
    void fkt2(void)
    {
        extern int nummer;
    }
    

    Ist dann in fkt2 nummer==7 oder wird das als neue (dann auch noch unitialisierte Variable) behandelt?

    Danke schonmal im Voraus.

    der Guenther



  • sorry, das geht nicht. 'static' bei lokalen variablen heisst nur, dass die den funktionsaustritt überleben d.h. bei wiederholten aufrufen der funktion ihren wert behalten. man kann von anderen funktionen nicht darauf zugreifen. das was du in fkt2 machst (extern int nummer) erfordert eine andere globale variable (in einem anderen file oder so)



  • Danke dir,

    schade drum.

    der Guenther


Anmelden zum Antworten