【发布时间】:2023-03-12 02:08:02
【问题描述】:
#include <ctime>
#include <iostream>
#include <cstring>
int main()
{
struct tm tm ;
//memset(&tm, 0, sizeof(struct tm));
strptime("1 Jan 2000 13:00:00", "%d %b %Y %H:%M:%S", &tm);
time_t t =mktime(&tm);
std::cout << ctime(&t);
return 0;
}
g++ -Wuninitialized -O2 test.cpp 不会警告 tm 尚未初始化。 Valgrind 会一直这样做,直到添加 memset 行。 Linux 上 strptime 的手册页说它应该被初始化,我在一个更复杂的程序上看到随机日期,直到我初始化它。是否有任何 GCC 标志会在这些情况下产生警告?
【问题讨论】:
-
gcc 版本 4.4.5 (Debian 4.4.5-6)
标签: c++ struct initialization gcc-warning