Wirklich einfache Frage hier. Ich habe ein wirklich einfaches Programm, um zwei Zahlen hinzuzufügen und die Summe dieser Zahlen auszudrucken (unten). Beim Ausführen des Programms funktioniert es wie erwartet und druckt 40 000 für 20 000 + 20 000. Aber wenn ich int a, b und summe zu short a, b und Summe ändere, bekomme ich -25 536 als Antwort. Wer kann erklären, warum das passiert? Ich habe eine Idee, aber ich würde es gerne von jemandem hören, der es weiß. Danke fürs Lesen.Beim Hinzufügen von zwei kurzen Zahlen
int a, b, sum;
a = 20000; b = 20000; sum = a+b;
printf("%d + %d = %d\n", a, b, sum);
Der maximale Wert von 'short' in Ihrer Implementierung ist' 32767'. – Barmar
Sie könnten 'unsigned short' versuchen, wenn Sie die 65535 max wollen? – corn3lius