2

ctimeを使用して、さまざまな時点でのCでのプログラムの実行時間を表示することに興味があります。私はそのようなことを試みましたが、それは正しくないはずです...

int main() {

    time_t tm1, tm2;
    tm1 = time(NULL);
    sleep(2);
    tm2 = ctime(tm1);

    printf("%d\n", tm2-tm1);
    return 0;
}

何か提案や適切な例はありますか?前もって感謝します

4

2 に答える 2

5

ctime()渡された時間の文字列表現を返します。

単純な経過時間を必要とする場合は、次のようにします。

    time_t t1, t2;
    t1 = time(0);
    sleep(2);
    t2 = time(0);

    printf("Elapsed: %d\n", t2 - t1);

man ctimeおよびを参照してくださいman 2 time

于 2011-04-30T21:04:38.140 に答える
2

関数を使用しtimeて現在の時刻を取得し、関数difftimeを使用して 2 つの時刻の差を秒単位で計算できます (エラー処理は省略されます)。

time_t t0, t1;
t0 = time(NULL);
foo();
t1 = time(NULL);
printf("foo() took %f seconds.\n", difftime(t1, t0));

ただし、time_tカレンダー時間を測定することを目的としています。time通常、関数の間隔は 1 秒です。これが粗すぎる場合は、次clock_tclock関数を使用してみてください (エラー処理は省略されています)。

clock_t t0, t1;
t0 = clock();
foo();
t1 = clock();
printf("foo() took %f seconds.\n", (double)((t1 - t0) / CLOCKS_PER_SEC));
于 2011-04-30T22:35:11.393 に答える