以前にこれを聞いてみましたが、質問を含めるのを忘れたので(サイトに参加したばかりなので)、実際には問題を解決できませんでした。人々は、コードの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 *'"