C - 如何在 ctime 函数中实际使用长长数据类型



我之前尝试过问这个问题,但我忘了包括一个问题(因为我刚刚加入该网站),所以我实际上并没有解决我的问题,人们只是告诉我为什么第二段代码是错误的,而不是如何让它工作。这是家庭作业的一部分。其目的是最终将 INT_MAX+1 放入 ctime 中,以证明在 32 位机器中日期不能通过 ~2038 的观点,因为它自 1970 年以来的秒数耗尽了位。我的问题很简单,我怎样才能把很长的时间放进ctime?如何使第二位代码工作?

如果这很重要,所有这些都是用 C99 编译的。

工程:

    long x = INT_MAX-1;
    printf("Time: %s",ctime(&x));

不起作用:

    long long x = INT_MAX+1;
    printf("Time: %s",ctime(&x));

错误:

incompatible pointer type: "Expected 'const time_t *' but argument is of type 'long long int *'"

你不能。 您正在使用 32 位time_t值的系统。 传递 64 位long long会给你一个错误,因为它不起作用。

相关内容

  • 没有找到相关文章

最新更新