Verwendung von 'register'-Variablen



  • Hi,

    Wie groß ist die Warscheinlichkeit, das eine Zeigervariable (32 Bit, also 4 Bytes) über die Spezifizierung 'register' auch wirklich ins Register der CPU kommt ?

    Bsp:

    register CFoo* pFoo;
    

    Dank euch!



  • reg schrieb:

    Wie groß ist die Warscheinlichkeit, das eine Zeigervariable (32 Bit, also 4 Bytes) über die Spezifizierung 'register' auch wirklich ins Register der CPU kommt ?

    Die Wahrscheinlichkeit das die register Spezifizierung den Register-Belegungsalgo eines modernen Compilers beeinflusst liegt bei 0 - es gibt eigentlich kaum noch einen Compiler, der register nicht einfach ignoriert.



  • HumeSikkins schrieb:

    reg schrieb:

    Wie groß ist die Warscheinlichkeit, das eine Zeigervariable (32 Bit, also 4 Bytes) über die Spezifizierung 'register' auch wirklich ins Register der CPU kommt ?

    Die Wahrscheinlichkeit das die register Spezifizierung den Register-Belegungsalgo eines modernen Compilers beeinflusst liegt bei 0 - es gibt eigentlich kaum noch einen Compiler, der register nicht einfach ignoriert.

    Oh...Aber warum, das ist doch sinnvoll, oder nicht ?



  • Das kann der Compiler besser entscheiden welche Variablen er wo halten muss, damit es moeglichst performant ist.



  • Kenner der Compiler schrieb:

    Das kann der Compiler besser entscheiden welche Variablen er wo halten muss, damit es moeglichst performant ist.

    Ich glaube nicht das ein Compiler intelligenter als wie ein Mensch ist.



  • glaub schrieb:

    Ich glaube nicht das ein Compiler intelligenter als wie ein Mensch ist.

    tust du auch nicht glauben, daß ein taschenrechner intelligenter ist als wie ein mensch? ich vermute, er kann besser rechnen tun als wie du und warum sollte der compiler nicht register besser allokieren tun können als wie du?



  • glaub schrieb:

    Kenner der Compiler schrieb:

    Das kann der Compiler besser entscheiden welche Variablen er wo halten muss, damit es moeglichst performant ist.

    Ich glaube nicht das ein Compiler intelligenter als wie ein Mensch ist.

    Das ist weniger eine Frage der Intelligenz, als des Kontexts. Du siehst lediglich deine Funktion im Quelltext. Der Compiler hingegen kennt die Optimierungen, Umsortierungen usw. die er durchgeführt hat. Er hat ein viel genaueres Bild der Situation und kann deshalb auch eine bessere Entscheidung treffen.



  • Wer ein Hardcore-ASM Programmierer ist, bekommt manche Sachen bestimmt besser als ein Kompiler hin.
    Ein Kompiler hat ja auch nichts "intelligent" zu tun... eine nicht-ambige Hochsprache (ala c/c++) in Maschinencode umwandeln. Das ist nur ne haufen Arbeit, mehr nicht. Nur diese Arbeit macht sich natürlich kein Mensch, da sie viel zulange dauern würde.
    Sollte die Hochsprache ambig sein, wäre es mit der O(N) Kompilierzeit auch vorbei.
    Sollte es sogar eine natürlich Sprachlich sein, dann waärs mit der Gemütichkeit ganz vorbei.

    @volkrad: glaubst du denn, dass ein Taschenrechner intelligenter ist als du? :). Ich hoffe doch nicht!
    Mein Drucker kann auch schneller schreiben als ich, und ist bei weitem kein Poet.

    Grüße


Anmelden zum Antworten