C99 §6.3.1.5 第2段落及び注 50.
C11 も引用したほうがいいのかもしれないが手元にない。
実際には x86 Linux gcc では、あたかも符号付き整数型の負値を unsigned int に代入したかのような動作、つまり UINT_MAX+1 の剰余がとられて、たとえば -1.0 は -1 と同様に 0xFFFFFFFF になるのだが、x86 でさえそれをあてにしてはいけない(未定義だから違う値になっても落ちても文句はいえない)。[追記:コメントに実例あり]
さらに x86 Linux でなければ違う値になることがある。なのだが未定義動作なのでコンパイラのドキュメントには書かれない。なので引用して違うとお伝えすることはできない。
More than 1 year has passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme