我正在創建一個簡單的計時器類,它返回例如當前時間以毫秒爲單位。在Linux上我使用gettimeofday。我想知道這個函數應該有什麼樣的返回類型。即 double getMillis()
或uint64_t getMillis()
等...我會說uint64_t
可以保持更大的值,因此建議,雖然在谷歌搜索我看到很多不同的實現。創建一個Timer類,我應該使用什麼數據類型來保存值? (C/C++)
對此有何建議?
感謝
我正在創建一個簡單的計時器類,它返回例如當前時間以毫秒爲單位。在Linux上我使用gettimeofday。我想知道這個函數應該有什麼樣的返回類型。即 double getMillis()
或uint64_t getMillis()
等...我會說uint64_t
可以保持更大的值,因此建議,雖然在谷歌搜索我看到很多不同的實現。創建一個Timer類,我應該使用什麼數據類型來保存值? (C/C++)
對此有何建議?
感謝
我會與無符號整數型自走毫秒數是一個計數。使加法和減法在不使用浮點的情況下也是可靠的。我使用的大多數實現都有無符號整數類型。
我推薦的數據類型以毫秒爲單位保存絕對時間戳int64_t,主要是因爲time_t是有符號的。
'uint64_t'可以容納更大的值,然後'雙'??? 'double'可能(或可能不會)導致精度問題,但它可以明確地保持更大的值,然後是'uint64_t'。 – Grizzly
灰熊,如果我記得他們都是8bytes,但雙簽署+真實。 – pollux
在C++ 11中,我們有標題。你可以做'auto time = std :: chrono :: system_clock :: now()。time_since_epoch()。count();'。返回的類型是'std :: chrono :: system_clock :: rep'。無需特定於平臺的代碼。 –