Problematisk kod
Antag att a, b och c är heltal av typen int.
c = a * b;
Kan ovanstående kod någonsin vara problematiskt? Motivera ditt svar väl (vilket du i och för sig alltid skall göra)
Någon som vet några tips?
Hur har du tänkt själv? Vad skulle kunna gå fel?
Vad tror du händer om C blir mindre/större än: −32,767 till +32,767?
Testa följande kod
a = 1 << 16;
b = 1 << 16;
c = a * b;
Vad kommer c vara nu?
Har ingen aning faktiskt. Om det står omvänt dvs a * b = c; tror ja det blir problematiskt, men tror inte det är svaret på frågan...
c skall också vara en int.
Vad är en int?
Aha så om talet är större än vad gränsen är så kan det bli problematiskt..
Men är det svaret då?
Ja, det kallas att man får overflow.
Tack så mycket! :D