Sinnvolle Variablen Deklaration



  • Hallo ich hab mal eine Frage zur Variablen Deklaration.

    Ist es so das wenn ich hier z.b. short auswahl; anstatt int auswahl; nehme
    das dass Programm dann weniger Leistung braucht?

    short auswahl; = Wenig Leistung
    int auswahl; = Mehr Leistung

    int auswahl;
    cout<<"1 = Programm Beenden , 2 = Fortfahren";
    cin>>auswahl;
    


  • weniger Speicher



  • du wirst keinen unterschied feststellen - vermutlich gibts auch keinen mehr, nachdem der compiler es optimiert hat...



  • unskilled schrieb:

    vermutlich gibts auch keinen mehr, nachdem der compiler es optimiert hat...

    Warum sollte es nicht? zumindest der Wertebereich sollte kleiner sein bei short (gesetzt den Fall dass sizeof(short) < sizeof(int)). Auch wenn der Compiler jetzt aus alignement-Gründen für den short trotzdem 4 byte auf dem Stack reserviert darf das den Wertebereich afaik nicht ändern.



  • pumuckl schrieb:

    unskilled schrieb:

    vermutlich gibts auch keinen mehr, nachdem der compiler es optimiert hat...

    Warum sollte es nicht? zumindest der Wertebereich sollte kleiner sein bei short (gesetzt den Fall dass sizeof(short) < sizeof(int)). Auch wenn der Compiler jetzt aus alignement-Gründen für den short trotzdem 4 byte auf dem Stack reserviert darf das den Wertebereich afaik nicht ändern.

    ja - den unterschied wird er aber nich bemerken - entweder, es wurd ne 1 oder ne 2 eingetippt oder was anderes...



  • unskilled schrieb:

    ja - den unterschied wird er aber nich bemerken - entweder, es wurd ne 1 oder ne 2 eingetippt oder was anderes...

    Was passiert wenn ich ne Zahl eintippe die 1+std::numeric_limits<unsigned short>::max() entspricht? Als int dürfe dann eine entsprechend große Zahl dort stehen - als short könnte ich mir vorstellen dass ne 1 rauskommt.

    /edit: bullshit 😉 bei zu großen zahlen wird der short nicht geändert sondern bei cin der errorflag-gesetzt...


Anmelden zum Antworten