Müssen statische Variablen initialisiert werden?



  • C von A bis Z - 11.8 Statische Variablen schrieb:

    Achtung: Statische Variablen müssen schon bei ihrer Deklaration initialisiert werden!

    das ist doch quatsch - oder? eine statische Variable wird mit ihrem Nullwert (wie immer der auch definiert ist) initialisiert - oder?
    mmh... ich geb ja zu das es sinnvoll ist gleich einen Wert zuzuweißen, aber der Compiler darf ohne explizite Zuweisung auch nicht streiken - oder?

    unter Comeau hab ich folgendes getestet:

    #include <stdio.h> 
    
    void foo(void)
    {
    	static int counter;
    
    	printf("%d\n", counter);
    
    }
    
    int main(void)
    {
    	foo();
    }
    

    übersetzt ohne Fehler



  • Es bringt irgendwie nichts, wenn du am Tag fünf Fehler aus diesem komischen Buch postest 😉



  • Ich erinnere mich daran in einem anderen Thread von dir, dass statische Variablen automatisch auf 0 gesetzt werden, und bei structs die erste Variable. Deshalb sollte dein Code so funktionieren.



  • Bashar schrieb:

    Es bringt irgendwie nichts, wenn du am Tag fünf Fehler aus diesem komischen Buch postest 😉

    doch - ich schick dem Autor dann immer eine E-Mail, wenn ich etwas verdächtiges finde - daraufhin hat es jetzt schon ein paar Korrekturen in diesem Buch (der online Version) gegeben



  • Ich würde eher vorschlagen, dass du einen Thread zum Buch aufmachst und dort deine Fragen stellst, weil sonst ist schon ein bisschen nervig und merkwürdig 5 Threads zum selben Buch zu finden.



  • ok werd ich machen


Anmelden zum Antworten