Verschiedenes (static/float-double)



  • Hallo zusammen,

    ich habe mal ne Frage zum Schlüsselwort static. Es hat ja (in meinen Augen) quasi zwei völlig unterschiedliche Bedeutungen:

    void fkt(){
       static int aufruf;
       aufruf++;
    }
    

    da is eine variable definiert, die während des gesamten programmlaufs im speicher existiert (mit der man in dem fall die anzahl der aufrüfe von fkt zählen kann).

    mod1:

    static int a;
    

    mod2:

    extern int a;
    

    hier verhindert das static, dass in einem anderen modul via extern auf die variable a zugegriffen werden kann.

    wieso macht dass das gleiche schlüsselwort? hat das irgendwas miteinander zu tun? woher weiß der compiler das? ich raffs nicht ;).

    außerdem möchte ich wissen, ob es einen geschwindigkeitsunterschied gibt (beim rechnen) zwischen float und double, und wenn ja, warum. gibts auf dem pc sowas wie gleitkommaregister? wenn ja, wie groß sind die?

    gruß, mata



  • das dafür das selbe schlüsselwort verwendet wird hat wohl nur den einen grund, daß die leute, die die sprache c erfunden haben, nicht genug phantasie hatten, sich für den zweiten fall ein neues schlüsselwort auszudenken 😉

    vielleicht wollten sie sich aber auch einfach nur programmierarbeit ersparen. die haben wohl für das parsen von deklarationen globaler variablen einfach das selbe unterprogramm benutzt wie für das parsen lokaler variablendeklationen.

    EDIT: mist! tippfehler ohne ende korrigiert


Anmelden zum Antworten