の有効な値の範囲を見つけるのは非常に難しいようですtime_t
。
一部のプラットフォームでは 32 ビットですが、ほとんどの 64 ビットでは、簡単に に設定できますLONG_MAX
。ただし、その値を使用しようとすると、実際には正しく機能しません。たとえば、それをに渡してにlocaltime
変更することはできませんstruct tm
。
二分探索の簡単なテスト プログラムは、値が 67768036191676799 であることを教えてくれます。これは 2147483647 年末に相当するので、値としては理にかなっています。しかし、これはどこかで指定されていますか? また、使用可能な最大 time_t の妥当な、プラットフォームに依存しない値はありますか?