我之前尝试过这个问题,但我忘了提问(因为我刚加入网站),所以我实际上没有解决我的问题,人们只是告诉我为什么第二位代码错了而不是如何使它工作。这是家庭作业的一部分。其目的是最终将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 *'"
答案 0 :(得分:1)
你做不到。您所在的系统使用32位time_t
值。传递64位long long
会给您一个错误,因为它不起作用。