對於作業,我正在編寫一個程序,處理很多time_t
對象。我想過檢查它們是否溢出,但是後來發現如果溢出了,我們都會遇到麻煩。自紀元> LONG_MAX以來的秒數會發生什麼?
有沒有這方面的計劃?自世紀以來的時間超過存儲將會發生什麼?
對於作業,我正在編寫一個程序,處理很多time_t
對象。我想過檢查它們是否溢出,但是後來發現如果溢出了,我們都會遇到麻煩。自紀元> LONG_MAX以來的秒數會發生什麼?
有沒有這方面的計劃?自世紀以來的時間超過存儲將會發生什麼?
LONG_MAX
在64位機器上是2^63 - 1
。試試這個:去http://google.com並輸入2^63 seconds in years
。看看答案並決定你是否真的需要擔心它。
我懷疑還有任何主流的CRT實現還沒有使time_t成爲64位類型。 – 2012-01-31 05:27:15
http://en.wikipedia.org/wiki/Year_2038_problem – 2012-01-31 05:29:55
@Hans:錯了。在我所知的所有現有32位機器上,'time_t'是32位('long'),特別是Linux/glibc。無論如何,我認爲預計到2038年所有的32位機器都會退役是很現實的...... – 2012-01-31 05:38:35