clock()是C/C++中的計時函式,而與其相關的資料型別是clock_t。
它的具體功能是返回處理器呼叫某個程序或函式所花費的時間。函式返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的CPU時鐘計時單元(clock tick)數,其中clock_t是用來儲存時間的資料型別。
在
time.h
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其實就是long,即長整形。該函式返回值是硬體滴答數,要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000,這表示硬體滴答1000下是1秒,因此要計算一個程序的時間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器最佳化,for迴圈實際根本沒執行,直接跳過去了,所以時間為0。
2、clock計算的是程式佔用cpu的時間,如果你的程式執行的動作很少,那麼clock算出的時間也很少。
3、建議使用time gettimeofday函式來計時。
擴充套件資料:
C語言中clock()函式的程式例1:(TC下執行透過)
#include <stdio.h>
#include <time.h>
int main(void)
{
clock_t start, end;
start = clock();
delay(2000);
end = clock();
printf("The time was: %f\n", (double)(end - start) / CLK_TCK);
clock()是C/C++中的計時函式,而與其相關的資料型別是clock_t。
它的具體功能是返回處理器呼叫某個程序或函式所花費的時間。函式返回從“開啟這個程式程序”到“程式中呼叫clock()函式”時之間的CPU時鐘計時單元(clock tick)數,其中clock_t是用來儲存時間的資料型別。
在
time.h
檔案中,我們可以找到對它的定義:#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
clock_t其實就是long,即長整形。該函式返回值是硬體滴答數,要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000,這表示硬體滴答1000下是1秒,因此要計算一個程序的時間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器最佳化,for迴圈實際根本沒執行,直接跳過去了,所以時間為0。
2、clock計算的是程式佔用cpu的時間,如果你的程式執行的動作很少,那麼clock算出的時間也很少。
3、建議使用time gettimeofday函式來計時。
擴充套件資料:
C語言中clock()函式的程式例1:(TC下執行透過)
#include <stdio.h>
#include <time.h>
int main(void)
{
clock_t start, end;
start = clock();
delay(2000);
end = clock();
printf("The time was: %f\n", (double)(end - start) / CLK_TCK);