c語(yǔ)言時(shí)間函數(shù):
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),柳河網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:柳河等地區(qū)。柳河做網(wǎng)站價(jià)格咨詢:18980820575
1、獲得日歷時(shí)間函數(shù):
可以通過(guò)time()函數(shù)來(lái)獲得日歷時(shí)間(Calendar Time),其原型為:time_t time(time_t * timer);
如果已經(jīng)聲明了參數(shù)timer,可以從參數(shù)timer返回現(xiàn)在的日歷時(shí)間,同時(shí)也可以通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,即從一個(gè)時(shí)間點(diǎn)(例如:1970年1月1日0時(shí)0分0秒)到現(xiàn)在此時(shí)的秒數(shù)。如果參數(shù)為空(NUL),函數(shù)將只通過(guò)返回值返回現(xiàn)在的日歷時(shí)間,比如下面這個(gè)例子用來(lái)顯示當(dāng)前的日歷時(shí)間:
2、獲得日期和時(shí)間函數(shù):
這里說(shuō)的日期和時(shí)間就是平時(shí)所說(shuō)的年、月、日、時(shí)、分、秒等信息。從第2節(jié)我們已經(jīng)知道這些信息都保存在一個(gè)名為tm的結(jié)構(gòu)體中,那么如何將一個(gè)日歷時(shí)間保存為一個(gè)tm結(jié)構(gòu)的對(duì)象呢?
其中可以使用的函數(shù)是gmtime()和localtime(),這兩個(gè)函數(shù)的原型為:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中g(shù)mtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時(shí)間(即格林尼治時(shí)間),并返回一個(gè)tm結(jié)構(gòu)體來(lái)保存這個(gè)時(shí)間,而localtime()函數(shù)是將日歷時(shí)間轉(zhuǎn)化為本地時(shí)間。比如現(xiàn)在用gmtime()函數(shù)獲得的世界標(biāo)準(zhǔn)時(shí)間是2005年7月30日7點(diǎn)18分20秒,那么用localtime()函數(shù)在中國(guó)地區(qū)獲得的本地時(shí)間會(huì)比世界標(biāo)準(zhǔn)時(shí)間晚8個(gè)小時(shí),即2005年7月30日15點(diǎn)18分20秒。
在開(kāi)始時(shí)用time()函數(shù)取一次時(shí)間,在結(jié)束時(shí)(輸入與生成相同時(shí))再用time()取一次時(shí)間,之后求出再次時(shí)間之差即可。
*************************************************
#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");
}
/////////////////////////////////////////////
輸出兩次按鍵之間的時(shí)間(秒)
獲取程序運(yùn)行時(shí)間:
在time.h里有函數(shù)clock();本身這個(gè)函數(shù)取得的時(shí)間好像是ms,要取得s就
寫成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定義的,如果沒(méi)這個(gè)定義
那只能用clock();取得ms;這個(gè)函數(shù)的執(zhí)行不會(huì)中途停止,如果是在windows系統(tǒng)下,因?yàn)樗?/p>
多任務(wù)系統(tǒng),它需要在各任務(wù)之間切換,如果在測(cè)試過(guò)程中,執(zhí)行其他程序,所其得的時(shí)間,就會(huì)
出現(xiàn)差別,還有windows運(yùn)行速度相當(dāng)快,對(duì)于小型的測(cè)試,所得的時(shí)間幾乎為0,因此最好將
要測(cè)試的過(guò)程執(zhí)行100次或以上,然后再將取得的時(shí)間執(zhí)行次數(shù);輸出非常耗時(shí)間,沒(méi)什么必要
的話,就不要輸出
這是一個(gè)測(cè)試選擇排序的程序
#include
stdio.h
#include
stdlib.h
#include
time.h
#define
M
1000
/*
執(zhí)行次數(shù)
*/
#define
N
500
/*
數(shù)組大小
*/
void
SelectSort(int
*a,int
l,int
r)
{
int
i,j,v;
for
(i=0;ir;i++)
{
for
(j=i+1;j=r;j++)
{
if
(*(a+i)*(a+j))
v=*(a+i),*(a+i)=*(a+j),*(a+j)=v;
}
}
}
void
main()
{
int
a[N],i,j;
double
start,finish;
/*
開(kāi)始時(shí)間,結(jié)束時(shí)間
*/
start=(double)clock();
/*
我的time.h內(nèi)沒(méi)有CLOCKS_PER_SEC
*/
for
(j=0;jM;j++)
{
/*
執(zhí)行M次
*/
for
(i=0;iN;*(a+i++)=rand()%10);
/*
每次重新賦值
*/
SelectSort(a,0,N-1);
}
finish=(double)clock();
printf("%.4fms",(finish-start)/M);
getchar();
}
#include stdio.h
#include time.h
#define N 10000 /*這個(gè)數(shù)字可以自己改,如果時(shí)間太長(zhǎng)結(jié)果不出來(lái)你就改小點(diǎn)*/
void f()
{
int i, j, k;
for ( i = 0; i N; ++i )
for ( j = 0; j N; ++j )
for ( k = 0; k N; ++k )
;
}
int main()
{
clock_t begin, duration;
begin = clock();
f();
duration = clock() - begin;
printf( "函數(shù)f()的運(yùn)行時(shí)間大約為:%dms\n", duration*1000/CLOCKS_PER_SEC );
}
文章標(biāo)題:c語(yǔ)言代碼運(yùn)行時(shí)間的函數(shù) c語(yǔ)言 運(yùn)行時(shí)間
網(wǎng)頁(yè)網(wǎng)址:http://www.chinadenli.net/article38/ddiphsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、企業(yè)建站、電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)