c語言clock函數
Ⅰ c語言計算時間
在C語言中計算時間,可以使用標准庫中的計時函數——clock()。
函數原型:
clock_tclock(void);
其中clock_t是用來保存時間的數據類型,在time.h文件中,可以找到對它的定義:
#ifndef_CLOCK_T_DEFINED
typedeflongclock_t;
#define_CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#defineCLOCKS_PER_SEC((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
voidelapsed_time()
{
printf("Elapsedtime:%usecs. ",clock()/CLOCKS_PER_SEC);
}
當然,也可以用clock函數來計算的機器運行一個循環或者處理其它事件到底花了多少時間:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}
Ⅱ C語言中time.h頭文件中對時間的操作具體是怎樣的
time.h頭文件提供對時間操作的一些函數,clock()是程序開始到調用的毫秒數。
time_tt_begin,t_end;
t_begin=clock();//記錄開始時間
dosomething();//調用函數
t_end=clock();//記錄結束時間
printf("Timeused=%.21f ",(double)(t_end-t_begin)/CLOCKS_PER_SEC);//顯示函數調用時間
(2)c語言clock函數擴展閱讀
c語言中time.h頭文件的使用
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;//測量一個事件持續的時間
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--)
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;//clock()是以毫秒為單位計算時間的所以除以CLOCKS_PER_SEC這是time.h裡面定義的一個常量
printf("%fseconds ",ration);
system("pause");
}
Ⅲ C璇璦鐨刢lock()嫻嬪嚭鏉ョ殑鏄浠涔堟椂闂
clock鍑芥暟榪斿洖鐨勬槸cpu鏃墮棿錛屽苟涓嶆槸縐掓暟錛岀湡姝g殑涓縐掗挓鍙鑳藉寘鍚鑻ュ共涓狢PU鏃墮棿錛岃繖涓鍊奸氬父鏄鐢卞畯CLOCKS_PER_SEC鏉ュ畾涔夛紝琛ㄧず涓縐掍腑鏈塁LOCKS_PER_SEC榪欎箞澶氫釜cpu鏃墮棿錛屼笉鍚岀殑緙栬瘧鍣ㄥ彲鑳戒笉鍚岋紝姣斿傦紝linux C涓錛屽畠鏄1000000錛屽湪VC6涓錛屽畠鏄1000錛屼綘鐢╟ost闄や互CLOCKS_PER_SEC鍗沖彲寰楀埌瀹為檯鐨勭掓暟銆
闄刲inux涓媍lock鍑芥暟璇存槑錛
鍦ㄥ崟鐙鐨勭獥鍙d腑鎵撳紑鍥劇墖鍙浠ョ湅寰楁洿娓呮氫竴浜涳紝娉ㄦ剰綰㈢嚎閮ㄥ垎璇存槑錛氳佽$畻縐掓暟錛岄櫎浠CLOCKS_PER_SEC
Ⅳ C語言求一個程序運行時間
C/C++中的計時函數是clock()。
所以,可以用clock函數來計算的運行一個循環、程序或者處理其它事件到底花了多少時間,具體參考代碼如下:
#include「stdio.h」
#include「stdlib.h」
#include「time.h」
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
/*測量一個事件持續的時間*/
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}