Ⅰ 在c語言中,start=clock();是什麼意思丫
start=clock(); -- start 存入現在(開始)時間(單位:時鍾「嘀嗒」數)。
for (i=0;i<1000;i++) for (j=0;j<1000;j++) { };
end = clock() -- end 存入現在(結束)時間(單位:時鍾「嘀嗒」數)。
end - start 得 用去時間:
dt = (end - start) / CLOCKS_PER_SEC; (單位:時鍾秒數)。
別忘了 #include <time.h>
Ⅱ 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語言的clock()測出來的是什麼時間
clock函數返回的是cpu時間,並不是秒數,真正的一秒鍾可能包含若干個CPU時間,這個值通常是由宏CLOCKS_PER_SEC來定義,表示一秒中有CLOCKS_PER_SEC這么多個cpu時間,不同的編譯器可能不同,比如,linux C中,它是1000000,在VC6中,它是1000,你用cost除以CLOCKS_PER_SEC即可得到實際的秒數。
附linux下clock函數說明:
在單獨的窗口中打開圖片可以看得更清楚一些,注意紅線部分說明:要計算秒數,除以CLOCKS_PER_SEC
Ⅳ c語言clock怎麼用啊 算程序運行時間謝謝大家了
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
clock_t start, finish;
double ration=0;
start = clock();
/*******************************
**********添加代碼**************
*******************************/
finish = clock();
ration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds\n", ration );
}
把你需要計算時間的代碼添加進去就可以結算出時間了。有不明白的可以繼續問我。
Ⅳ c語言 時間函數
CLOCK()函數:
clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
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
ration;
/*
測量一個事件持續的時間*/
printf(
"Time
to
do
%ld
empty
loops
is
",
i)
;
start
=
clock();
while(
i--
);
finish
=
clock();
ration
=
(double)(finish
-
start)
/
CLOCKS_PER_SEC;
printf(
"%f
seconds\n",
ration
);
system("pause");
}
在筆者的機器上,運行結果如下:
Time
to
do
10000000
empty
loops
is
0.03000
seconds
上面我們看到時鍾計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標准C/C++中,最小的計時單位是一毫秒。
time_t
time(
time_t
*timer
);
返回值是1970年到現在的秒數
用long型接就可以了
參數也是同樣意義
如
long
time_s
=
0;
time_s
=
time(
NULL
);
//
time_s就是1970年到現在的秒數
或者
long
*
time_s
=
NULL;
time(time_s);
//
*time_s就是1970年到現在的秒數
要計算前後一段時間的話之前取一次time,之後取一次相減就知道用了多少秒了