在time.h檔案中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h檔案中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
在linux系統下,CLOCKS_PER_SEC的值可能有所不同,目前使用的linux打印出來的值是1000000,表示的是微秒。這一點需要注意。
可以看到每過千分之一秒(1毫秒),呼叫clock()函式返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個程序自身的執行時間:
void elapsed_time()
{
printf(Elapsed time:%u secs.\n,clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函式來計算你的機器執行一個迴圈或者處理其它事件到底花了多少時間:
#include
int main(void)
long i = 10000000L;
clock_t start, finish;
double duration;
/* 測量一個事件持續的時間*/
printf( Time to do %ld empty loops is , i) ;
start = clock();
while( i-- );
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( %f seconds\n, duration );
system(pause);
在time.h檔案中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h檔案中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
在linux系統下,CLOCKS_PER_SEC的值可能有所不同,目前使用的linux打印出來的值是1000000,表示的是微秒。這一點需要注意。
可以看到每過千分之一秒(1毫秒),呼叫clock()函式返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個程序自身的執行時間:
void elapsed_time()
{
printf(Elapsed time:%u secs.\n,clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函式來計算你的機器執行一個迴圈或者處理其它事件到底花了多少時間:
#include
#include
#include
int main(void)
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 測量一個事件持續的時間*/
printf( Time to do %ld empty loops is , i) ;
start = clock();
while( i-- );
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( %f seconds\n, duration );
system(pause);
}