konvertieren von int zu short in C

Habe ich:

int a = 2147483647;
short b = (short)a;

bekommen und habe b = -1 während ich erwarte, dass int32 umgewandelt werden int16(short). Ich erwarte, um zu sehen, einige Wert und nicht -1.

Bitte jemand mir helfen mit diesem.

  • Ich würde sagen, der Wert nicht passt, so sind die Ergebnisse undefiniert.
  • -1 ist "etwas Wert". Und die (short) cast ist unnötig; die Umwandlung erfolgt implizit: short b = a;
  • Das Ergebnis der Konvertierung wird durch die Implementierung festgelegt, nicht undefined.
InformationsquelleAutor user1128265 | 2013-08-16
Schreibe einen Kommentar