0

以前にこれを聞いてみましたが、質問を含めるのを忘れたので(サイトに参加したばかりなので)、実際には問題を解決できませんでした。人々は、コードの2番目のビットが間違っている理由を教えてくれました。仕事。これは宿題の一部です。その目的は、最終的にINT_MAX + 1をctimeに入れて、32ビットマシンでは1970年以降の秒数のビットが不足しているため、日付が2038まで通過できないことを証明することです。 ctimeに長い間?コードの2番目のビットを機能させるにはどうすればよいですか?

それが重要な場合は、すべて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

できません。time_t32ビット値を使用するシステムを使用しています。64ビットlong longを渡すと、機能しないためエラーが発生します。

于 2013-01-29T03:08:01.160 に答える