clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。
它的具體功能是返回處理器調用某個進程或函數所花費的時間。函數返回從“開啟這個程序進程”到“程序中調用clock()函數”時之間的CPU時鐘計時單元(clocktick)數,其中clock_t是用來保存時間的數據類型。
在time.h
文件中,我們可以找到對它的定義:
#ifndef_CLOCK_T_DEFINED
typedeflongclock_t;
#define_CLOCK_T_DEFINED
#endif
clock_t其實就是long,即長整形。該函數返回值是硬件滴答數,要換算成秒或者毫秒,需要除以CLK_TCK或者CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000,這表示硬件滴答1000下是1秒,因此要計算一個進程的時間,用clock()除以1000即可。
clock的返回值一直是0的原因:
1、編譯器優化,for循環實際根本沒執行,直接跳過去了,所以時間為0。
2、clock計算的是程序占用cpu的時間,如果你的程序執行的動作很少,那么clock算出的時間也很少。
3、建議使用timegettimeofday函數來計時。
擴展資料:
C語言中clock()函數的程序例1:(TC下運行通過)
#include<stdio.h>
#include<time.h>
intmain(void)
{
clock_tstart,end;
start=clock();
delay(2000);
end=clock();
printf("Thetimewas:%f\n",(double)(end-start)/CLK_TCK);