CLOCK()函數(shù):
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蠡縣,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
clock()是C/C++中的計時函數(shù),而與其相關(guān)的數(shù)據(jù)類型是clock_t。在MSDN中,查得對clock函數(shù)定義如下:
clock_t clock(void) ;
這個函數(shù)返回從“開啟這個程序進程”到“程序中調(diào)用clock()函數(shù)”時之間的CPU時鐘計時單元(clock tick)數(shù),在MSDN中稱之為掛鐘時間(wal-clock);若掛鐘時間不可取,則返回-1。其中clock_t是用來保存時間的數(shù)據(jù)類型,在time.h文件中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數(shù)。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調(diào)用clock()函數(shù)返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
}
當(dāng)然,你也可以用clock函數(shù)來計算你的機器運行一個循環(huán)或者處理其它事件到底花了多少時間:
#include stdio.h
#include stdlib.h
#include time.h
int main(void)
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 測量一個事件持續(xù)的時間*/
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");
}
在筆者的機器上,運行結(jié)果如下:
Time to do 10000000 empty loops is 0.03000 seconds
上面我們看到時鐘計時單元的長度為1毫秒,那么計時的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發(fā)現(xiàn)這樣是不行的。在標(biāo)準(zhǔn)C/C++中,最小的計時單位是一毫秒。
time_t time( time_t *timer );
返回值是1970年到現(xiàn)在的秒數(shù) 用long型接就可以了
參數(shù)也是同樣意義
如
long time_s = 0;
time_s = time( NULL );
// time_s就是1970年到現(xiàn)在的秒數(shù)
或者
long * time_s = NULL;
time(time_s);
// *time_s就是1970年到現(xiàn)在的秒數(shù)
要計算前后一段時間的話之前取一次time,之后取一次相減就知道用了多少秒了
在開始時用time()函數(shù)取一次時間,在結(jié)束時(輸入與生成相同時)再用time()取一次時間,之后求出再次時間之差即可。
*************************************************
#include
//for
printf()
#include
//for
system()
#include
//for
time()
time_t
void
main()
{
time_t
ts,te;
system("pause");
ts=time(null);
system("pause");
te=time(null);
printf("%ld\n",te-ts);
system("pause");
}
/////////////////////////////////////////////
輸出兩次按鍵之間的時間(秒)
c語言中計時函數(shù)單獨執(zhí)行的步驟:
1、在MSDN中,查得對clock函數(shù)定義。
2、這個函數(shù)返回從開啟這個程序進程到程序中調(diào)用clock函數(shù)時之間的CPU時鐘計時單元。
3、在MSDN中稱之為掛鐘時間(wal-clock),若掛鐘時間不可取,則返回-1。
網(wǎng)頁名稱:如何在C語言中的計時函數(shù) c語言計時函數(shù)如何使用
網(wǎng)頁鏈接:http://chinadenli.net/article46/doddhhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、品牌網(wǎng)站制作、網(wǎng)站營銷、網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)