2017-03-17 12 views

答えて

5

これは(なし、診断に必要なと)未定義の動作です。本物のフローティングタイプの有限の値は、小数部分は(すなわち、値がに向かって切り捨てられ、廃棄され_Bool以外の整数型に変換されると

:C11 6.3.1.4は、(以前の基準が同様のテキストを持っていた)を参照してください。ゼロ)。整数部分の値を整数型で表すことができない場合、その動作は未定義です。

だから、あなたのシステムを仮定するとUSHRT_MAXとして65535short s = f;を持っており、それ以降のすべての行が未定義の動作を引き起こします。

関連する問題