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 Leistungint 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...