【发布时间】:2017-04-11 08:28:40
【问题描述】:
我这里有一个时间数组:
struct cl{
unsigned char *buffer;
time_t t = time(0);
struct tm * ct = localtime(&t);
};
然后:
cl sadi[10];
但例如我在21:58 得到sadi[5],而当我在21:59 得到sadi[6] 时。
然后我再次检查我所有的sadi[].ct->tm_min 是59。那有什么问题?是不是抓不住那一刻,会一直更新吗?如果是这样,我怎样才能捕捉到时间的瞬间而不是那样更新。
【问题讨论】:
-
那是有效的 C++ 吗?什么时候可以初始化这样的结构的成员?
-
@AndonM.Coleman 从 C++11 开始。您可以进行类内成员初始化。
-
就像下面的答案,那是我的错误,在这种情况下我不应该用这样的指针初始化成员,
-
你也可以使用
std::chrono:en.cppreference.com/w/cpp/chrono/time_point。有时 C++ 让你的生活更简单。如果你想用日期进行计算,我推荐 Howard Hinnants 很棒的库:github.com/HowardHinnant/date