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

时间:2013-01-29 02:44:27

标签: c long-integer c99 ctime long-long

我之前尝试过这个问题,但我忘了提问(因为我刚加入网站),所以我实际上没有解决我的问题,人们只是告诉我为什么第二位代码错了而不是如何使它工作。这是家庭作业的一部分。其目的是最终将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 *'"

1 个答案:

答案 0 :(得分:1)

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