欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語言clock函數(shù)單位 c++ clock單位

c語言 時間函數(shù)

CLOCK()函數(shù):

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、慶城網(wǎng)絡推廣、微信平臺小程序開發(fā)、慶城網(wǎng)絡營銷、慶城企業(yè)策劃、慶城品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供慶城建站搭建服務,24小時服務熱線:13518219792,官方網(wǎng)址:chinadenli.net

clock()是C/C++中的計時函數(shù),而與其相關的數(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);

}

當然,你也可以用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");

}

在筆者的機器上,運行結果如下:

Time

to

do

10000000

empty

loops

is

0.03000

seconds

上面我們看到時鐘計時單元的長度為1毫秒,那么計時的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發(fā)現(xià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,之后取一次相減就知道用了多少秒了

請問C語言中clock()函數(shù)該怎么用?

clock()是C/C++中的計時函數(shù),而與其相關的數(shù)據(jù)類型是clock_t。

它的具體功能是返回處理器調(diào)用某個進程或函數(shù)所花費的時間。函數(shù)返回從“開啟這個程序進程”到“程序中調(diào)用clock()函數(shù)”時之間的CPU時鐘計時單元(clock tick)數(shù),其中clock_t是用來保存時間的數(shù)據(jù)類型。

在time.h文件中,我們可以找到對它的定義:

#ifndef _CLOCK_T_DEFINED

typedef long clock_t;

#define _CLOCK_T_DEFINED

#endif

clock_t其實就是long,即長整形。該函數(shù)返回值是硬件滴答數(shù),要換算成秒或者毫秒,需要除以CLK_TCK或者 CLK_TCK CLOCKS_PER_SEC。比如,在VC++6.0下,這兩個量的值都是1000,這表示硬件滴答1000下是1秒,因此要計算一個進程的時間,用clock()除以1000即可。

clock的返回值一直是0的原因:

1、編譯器優(yōu)化,for循環(huán)實際根本沒執(zhí)行,直接跳過去了,所以時間為0。

2、clock計算的是程序占用cpu的時間,如果你的程序執(zhí)行的動作很少,那么clock算出的時間也很少。

3、建議使用time gettimeofday函數(shù)來計時。

擴展資料:

C語言中clock()函數(shù)的程序例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);

return?0;

}

說明:CLK_TCK?定義在TC中的time.h中:#define?CLK_TCK18.2。

在VC6.0中也有關于CLK_TCK的宏定義,不過其值不再是18.2,而是1000。

實際上在VC6.0中CLK_TCK已完全等同CLOCKS_PER_SEC。

參考資料來源:百度百科-clock()

C語言的clock()測出來的是什么時間

clock函數(shù)返回的是cpu時間,并不是秒數(shù),真正的一秒鐘可能包含若干個CPU時間,這個值通常是由宏CLOCKS_PER_SEC來定義,表示一秒中有CLOCKS_PER_SEC這么多個cpu時間,不同的編譯器可能不同,比如,linux C中,它是1000000,在VC6中,它是1000,你用cost除以CLOCKS_PER_SEC即可得到實際的秒數(shù)。

附linux下clock函數(shù)說明:

在單獨的窗口中打開圖片可以看得更清楚一些,注意紅線部分說明:要計算秒數(shù),除以CLOCKS_PER_SEC

分享題目:C語言clock函數(shù)單位 c++ clock單位
URL網(wǎng)址:http://chinadenli.net/article20/hipgco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航品牌網(wǎng)站建設網(wǎng)站維護網(wǎng)站策劃小程序開發(fā)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名