编译期间的time_t声明问题

时间:2016-11-11 08:49:27

标签: c++ struct time-t

我的代码中使用了time_t和Struct tm。我无法像我正在做的那样初始化结构。如果在函数中初始化它,那么它工作正常。请帮忙

<main style="/* color: lime; */">Hello!</main>

1 个答案:

答案 0 :(得分:1)

对于这三行:

strtime.tm_hour = 9; //Error here
strtime.tm_min = 15; //Error here
strtime.tm_sec = 00; //Error here

您不能在全局范围内初始化这样的全局实例(逐行赋值语句)。这必须在一个函数内完成:

您可以尝试这样做:

struct tm strtime = {0, 15, 9};

假设strtime的成员以tm_sec,tm_min的预期顺序声明,然后是tm_hour,那可能会有效。但我不能保证struct tm的成员顺序是否在每个平台上都是标准的。

老实说,最好只是在main的早期进行显式初始化。