clock_t clock(void) ;
這個函式返回從“開啟這個程式進程”到“程式中調用clock()函式”時之間的CPU時鐘計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock);若掛鍾時間不可取,則返回-1。其中clock_t是用來保存時間的數據類型,在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)
可以看到每過千分之一秒(1毫秒),調用clock()函式返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u SECS.\n",clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函式來計算你的機器運行一個循環或者處理其它事件到底花了多少時間:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
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 to do 10000000 empty loops is 0.03000 seconds
上面我們看到時鐘計時單元的長度為1毫秒,那么計時的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標準C/C++中,最小的計時單位是一毫秒。
相關詞條
-
CLOCK城邦
CLOCK城邦項目位於新都區蓉都大道北一段(新都四中旁)。本項目是新都老城區唯一舒適性套二社區:項目位於新都四中旁新老城區交匯處,周邊交通便利,生活配套...
-
clock
clock()是C/C++中的計時函式,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函式定義如下:clock_t clock(v...
介紹 同名微電影 -
clock()
#defin #defin #in
-
Life Clock
Life clock可以稱為是生命之鐘,是世界上最慢的時鐘,它的每一個刻度都代表1年,時針旋轉一周要整整84年,也就是說它的旋轉速度是普通時鐘的1/61...
簡介 基本理念 意義 -
clock[C/C++函式]
clock是英文單詞,代表時鐘的意思,在c語言中,表示返回處理器調用某個進程或函式所花費的時間。Linux命令中為編排文本檔案。
clock函式 Linux命令 魔錶魔方 微電影 -
clock[英語單詞]
clock是一個英語單詞,可以用作名詞和動詞,可以翻譯為鍾、時鐘,等等。
單詞簡介 例句 -
7O'CLOCK
7O'CLOCK是韓國Staro Entertainment公司推出的6人男子組合,於2017年3月15日出道,成員分別有에이데이、반、현、영훈、정규、태영 。
基本資料 音樂作品 -
clock up
特攝《假面騎士Kabuto》中,騎士經過“Cast Off"變為騎士形態後,進入和敵方怪人WORM一樣的超高速境界。 通過操縱光粒子來實現操縱時間流逝,...
Clock up 進化版