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