1

OSX で clock() を使用すると問題が発生します。プログラムの開始からの経過時間を表示したいだけです。問題は、clock_t 構造体を CLOCKS_PER_SEC で除算すると、奇妙な結果が得られることです。

プログラムを 10 秒間実行すると、1.0 が表示されます。私のシステムでは、CLOCKS_PER_SEC が 1,000,000 に設定されています。

ここに私のコードのサンプルがあります:

    //startTime = clock() at the start of the program
    //This is called in each program loop       
    elapsedTime = (double)(clock() - startTime)/CLOCKS_PER_SEC

実行している場合は、eplapseTime * 10 秒単位で正確な値を取得します。プログラムの実行中は、スリープも待機もしません。

何が起こっているのかを理解する助けがあれば、本当に感謝しています。

編集:

OK、キャストを修正しましたが、プログラムを 10 秒間実行すると 1.0 が得られるという事実は変わりません。1 秒は 0.1 です。これは私が理解していないものです。私の CLOCKS_PER_SEC は CLOCKS_PER_TEN_SEC のようなものです。

4

3 に答える 3