我有一个打印time_t值的函数。
void Logger::describe()
{
cout << m_start_time << " " << m_end_time << "n";
if (ctime(&m_start_time) == ctime(&m_end_time))
{
cout << "check1n";
}
cout << m_vehicle->getPlate() << " " << ctime(&m_start_time) << " " << ctime(&m_end_time) << "n";
}
// m_start_time and m_end_time are private variables of type time_t of the class Logger
对于等待几秒钟后的示例输出,我得到
1634907786 1634907791
check1
bike1 Fri Oct 22 18:33:06 2021
Fri Oct 22 18:33:06 2021
可以看到m_start_time和m_end_time是不同的,但ctime返回相同的值。有谁能帮我解释一下吗?
如果有帮助,我使用gcc 6.3.0。
阅读这里的返回值信息:ctime
是一个指向静态字符串的指针。您不是在比较字符串的内容(参见strcmp),而是在比较这个指针。