time_t
がdifftime(time_t t1, time_t t2)
メソッドによって返された2つの違いがdouble
の理由は何ですか?私は精度の要求がどこから来るかわかりません。time_tの相違を表す
答えて
time_t
は、単に標準でarithmetic type capable of representing times
と定義されているためです。
それはそれについてそれについて言うすべてです。整数である必要はなく、秒を表す必要はありません。それは10の倍数にしかなりませんでした。または、1-43秒の分解能まで時間を表すことができる浮動小数点型である可能性があります。 C99 7.23.1 Components of time
から
引用は(わずかに言い換え)である:宣言
タイプの時間を表すことができる算術型で
clock_t
とtime_t
です。 clock_tとtime_tで表現可能な時間の範囲と精度は、実装定義です。したがって
盲目的との時間差をうまく人:
delta = time_end - time_begin;
は、彼らのコードはすべてのプラットフォームで動作しないことがあります。
今、私は、このようなZ
を通じてA
を想定したとして、それはエポックからのシンプル秒ではありませんが、私はこの前にような仮定にかましてきたすべてのプラットフォームは、一方で連続している私の頭の上をオフに知りません実際、それは必須ではなく、EBCDICを使用するメインフレーム製品でうまく動作しません。 clock_t
とtime_t
がある
種類:そして、はい、彼らは明らかに
C99根拠文書は、これは言っている:-) 60年代以来、死にかけていたにも関わらず、重い使用中stillですこれらの型の値は、既存の習慣に従って、時には適切にキャストされた-1(「知らない」指示)と比較されなければならないからです。
しかしながら、これらの型の算術的特性は、意図されたアプリケーションに最も適した範囲、精度、表現を選択する際に最大の柔軟性を実現するために、標準によって定義されています。表現は、基本単位の数である必要はありません。インプリメンテーションは、時間的値の異なる成分を整数型のサブフィールドとして表すと考えられる。実装 - - いくつかのエポックの始めからの秒を表す整数型として、
time_t
は、実際には正式にそのように定義されていないので、あなたは、移植性の場合difftimeの結果を使用して作ることができなかった普遍的と考えされているにもかかわらず
タイプtime_t
に算術演算が定義されていないため、結果を計算で使用できることを意味するdoubleが返されるためです。
私は、安全でない領域にある2つのtime_t
の値をお互いに追加すると、プラットフォームによって、time_tが符号なし整数または通常のintとして定義されている場合に異なる動作が生じる可能性があるためです。
それはtime_t
でした。その他の選択肢については、int
は状況によっては小さすぎます(long
など)。long long
は移植性がありません。
おそらく最も一般的な算術型であると考えられます。また、基礎となるtime_t
がサポートしている場合は、2番目の精度より優れています。
- 1. 意味、time_t型
- 2. 相違
- 3. CSS表の表示の相違点 - Chrome Vs Firefox
- 4. OPENCVの相違点
- 5. ベクトルの相違_including_NA
- 6. iOS - pngcrushの相違
- 7. CLRの相違点
- 8. =と:=の相違点
- 9. 種類の相違
- 10. 球面の相違
- 11. 時間、分、秒をTime_t
- 12. importとconstとの相違点とcommonjsでの相違点
- 13. Java JFrameとJPanelの相違点Repaint()との相違
- 14. ドロップ・アンド・ドロップによるOracleの相違点の相違
- 15. PHPUnitとPHPSpecの相違点と相違点
- 16. Amazonクラウドホスティング、相違点
- 17. FileStream対/相違StreamWriter?
- 18. JavaScriptシェル - 相違点
- 19. 2つの正規表現のJavaScriptブックマークレットの相違点
- 20. timevalをtime_tに変換する
- 21. long intをconst time_tに変換する
- 22. steady_clock :: time_pointをtime_tに変換する
- 23. SQLのdatetimeカラムの相違
- 24. このコードの相違点
- 25. Androidの日付の相違
- 26. JavaScriptの月の相違
- 27. .NETロックのパフォーマンスカウンタの相違
- 28. SQLの相違の理由
- 29. Netlogoでのタイミングの相違
- 30. iOS上のシェーダの相違
技術的には、移植性については正しいですが、ほとんどの場合慣れているので、time_tが機能しないプラットフォームを知っていますか? –
偉大な答えは、ありがとう。 – Konrad
@ジョン、私の頭の上からではなく(アップデートを見て)、私はまだ可搬性をできるだけコード化したいと思うだろう。 – paxdiablo