請問C語言中clock?
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);