C++程序中多个位置的时间 (0) 时间戳

timestamp of time(0) at multiple places in a C++ program

本文关键字:时间 时间戳 位置 程序 C++      更新时间:2023-10-16

为什么C++程序中多个位置的时间(0(的时间戳是相同的值?

前任:

int main(){
cout << time(0) << endl;
cout << time(0) << endl;
cout << time(0) << endl;
cout << time(0) << endl; 
} 

上述所有值都相同。这是因为程序的执行速度如此之快,以至于上面示例中的时间值都相同吗?

有人可以帮助我吗?谢谢!

time()函数的分辨率不够细粒度,无法导致不同的值,从而为您进行的每次调用产生不同的结果,即 CPU 更快。

您可以尝试插入std::this_thread::sleep_for调用,以检查哪种时序分辨率适合您手头的硬件和操作系统的需求。

time(0)函数返回当前时间(以秒为单位(。

您上传的代码将在一秒钟内运行所有代码。 因此,即使输出时间,也输出所有相同的时间。

下面的代码是连续输出当前时间3秒。 如果你运行它,你会看到很多数字,但如果你仔细观察,你可以看到这个数字变化了三次。

#include <iostream>
#include <ctime>
int main()
{
time_t s = std::time(0); // time_t is int64 in windows 10 64bit.
time_t n;
do {
n = std::time(0);
std::cout << n << " ";
} while ((s + 3) > n); // repeat until 3 sec passed.
return 0;
}