我有一个包含日期和时间的结构。
struct datetime{
int hour;
etc...}
当我尝试将正确的小时分配给我自己的 struct-hour 时,出现错误。
struct tm tm_struct = *localtime(time(NULL));
dt->hour = tm_struct->tm_hour;
首先,我在第一行收到不兼容的指针转换错误,然后收到有关使用 tm_struct.tm_hour
的错误而不是->
.
如有任何帮助,我们将不胜感激:)
最佳答案
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) });
如果你愿意的话。
关于C:不兼容的指针到整数转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39518818/