C:不兼容的指针到整数转换

标签 c datetime time integer

我有一个包含日期和时间的结构。

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/

相关文章:

c - 在 Select 中阻止一个客户端而不阻止其他人

c - 使用#define 定义数组大小

mysql - 如何在mysql中查看时间比较

c# - 更快更有效地更改日期格式

c - 新手线程问题 (FFTW)

c - 如何在C中拥有动态数量的线程

c - 在 C 中具有不同(和未知)调用约定的目标代码之间跳转

java - tzupdater 在 2020b 和 2020c 中失败

html - 在时间类型的 html 5 输入元素中强制使用 24 小时符号

perl - 将 999 年之前的时间转换为纪元