Oct 3, 2011
C/C++ 中的使用 clock() 函數來計時,回傳的資料型別為 clock_t。 使用該函式與該資料型別時,必須要引入標頭檔 time.h(C++可引入 ctime 此標頭檔)。
Definition
函式定義為:clock_t clock(void);
,其回傳系統當前的 CPU time (tick 數)。
clock_t
為保留時間用的資料型別,其定義為:
1
2
3
4
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
由以上程式碼可得知,clock_t
為一個整數型別。
另外,在標頭檔中定義了一個常數 CLOCKS_PER_SEC
表示每秒會有幾次的 CPU 單位時間(tick)。因此可以使用 clock() / CLOCKS_PER_SEC
得到該程式目前執行的時間。
Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <time.h>
#include <stdio.h>
int main() {
clock_t begin, end;
double timeCnt;
begin = clock();
/*
ANYTING_YOU_WANT_TO_COUNT
*/
end = clock();
timeCnt = (double)( end - begin ) / CLOCKS_PER_SEC;
printf( "Time: %lf sec\n", timeCnt );
return 0;
}
上述範例,即可用來計算想要計時的程式片段所執行的時間長度。修改 ANYTING_YOU_WANT_TO_COUNT
部份為想要計時的程式碼。