アカウント名:
パスワード:
unsignedにするなら2108年?くらいまでモンダイなくなるのに…。データのバイナリ互換性も保たれる。
time_tがエラーに-1を使ってる?そんなのif (t==(time_t)-1)のようにキャストすれば無問題。C言語規格上もこれが正しかったはず。time_tが符号付きとは規定されていなかった。(最新規格は確認してないが当初の規格では)
加減算とかX秒前を表現するときとか、負数を使えた方が便利だからじゃないの。
規格上、time_tは単なる算術型で符号の有無や整数型かどうかは処理系定義だけど、特定の処理系用コードで4byte符号付き整数型を期待するのは間違っていない。そしてint32_tとtime_tに互換がある前提で書いているコードからしたら、time_tをunsigned にしようが64bitにしようが互換性のない仕様変更なのは変わらない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
物事のやり方は一つではない -- Perlな人
なぜ無理やり64ビットにしようとする? (スコア:0)
unsignedにするなら2108年?くらいまでモンダイなくなるのに…。
データのバイナリ互換性も保たれる。
time_tがエラーに-1を使ってる?そんなの
if (t==(time_t)-1)
のようにキャストすれば無問題。C言語規格上もこれが正しかったはず。time_tが符号付きとは規定されていなかった。(最新規格は確認してないが当初の規格では)
Re:なぜ無理やり64ビットにしようとする? (スコア:0)
加減算とかX秒前を表現するときとか、負数を使えた方が便利だからじゃないの。
規格上、time_tは単なる算術型で符号の有無や整数型かどうかは処理系定義だけど、特定の処理系用コードで4byte符号付き整数型を期待するのは間違っていない。
そしてint32_tとtime_tに互換がある前提で書いているコードからしたら、time_tをunsigned にしようが64bitにしようが互換性のない仕様変更なのは変わらない。