0

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

1 回答 1

1

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

于 2013-01-29T03:08:01.160 回答