次のコードでこれを見つけたときに型変換をしています。より大きいデータ型(intなど)をより小さいデータ型(shortなど)に変換すると、Cではどうなりますか?
int i = 123456;
short s = i;
printf("%i",s);
ここで、int値はCコンパイラによって暗黙的にshortに変換されます。この値を表示すると、コンソール出力に-7616が表示されます。私はshortがintのそれよりも小さい範囲を持っていることを理解していますが、C言語が123456から-7616までの値を切り捨てるのではなく直観的なオプションであると知る必要があります。
http://stackoverflow.com/questions/28389750/narrowing-conversion-of-65280-from-int-to-short-int-inside。実装定義 – stackptr