我有一个包含日期和时间的结构。
struct datetime{
int hour;
etc...}
当我尝试将正确的小时分配给我自己的struct-hour时,我收到错误。
struct tm tm_struct = *localtime(time(NULL));
dt->hour = tm_struct->tm_hour;
首先,我在第一行收到不兼容的指针转换错误,然后收到有关使用tm_struct.tm_hour
而不是->
的错误。
任何帮助将不胜感激:)
答案 0 :(得分:0)
localtime
期望指针到time_t
作为其参数。相反,您传递time_t
值本身,这是您第一个问题的根源。通常因此,您必须引入一个名为time_t
的中间对象来保存time
的结果
time_t t = time(NULL);
struct tm tm_struct = *localtime(&t);
阻止您使用原始单行。
但是通过使用复合文字,您仍然可以将其表达为单行
struct tm tm_struct = *localtime(&(time_t) { time(NULL) });
如果你愿意的话。