這個(gè)是和你機(jī)器的運(yùn)算速度有關(guān)的
成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)成都定制網(wǎng)站等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:混凝土泵車等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致表揚(yáng)!
你要計(jì)算出這個(gè)函數(shù)用了多少時(shí)間就要用時(shí)間函數(shù),我很久沒用了。
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
//time_t是在頭文件中定義的,可能是個(gè)結(jié)構(gòu)體類型里面的成員定義了一些時(shí)間的單位,如年、月、日。在這里調(diào)用這個(gè)結(jié)構(gòu)體定義2個(gè)變量;
//start=time(null);
將其中一個(gè)變量賦值。它的值等于當(dāng)前的系統(tǒng)時(shí)間
//end=time(null);
在程序結(jié)束的時(shí)候再給另一個(gè)變量賦值,值等于當(dāng)前的系統(tǒng)時(shí)間。
//difftime(end,start)
函數(shù)difftime();是double類型,用來計(jì)算運(yùn)行的時(shí)間,用第一個(gè)參數(shù)的時(shí)間減去第二個(gè)參數(shù)的時(shí)間,得到的值就是運(yùn)行用了多少時(shí)間。單位為秒
這個(gè)跟的系統(tǒng)頻率有關(guān)系??纯茨愕木д袷嵌嗌?。另外還跟指令集有關(guān)系。
精確的時(shí)間你可以反匯編一下看看有多少條指令,根據(jù)指令周期算算延時(shí)時(shí)間。
C語言delay函數(shù)延時(shí)計(jì)算源代碼如下:
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;ilt;121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
擴(kuò)展資料
1、對于要求精確延時(shí)時(shí)間更長,這時(shí)就要采用循環(huán)嵌套的方法來實(shí)現(xiàn),因此,循環(huán)嵌套的方法常用于達(dá)到ms級(jí)的延時(shí)。
對于循環(huán)語句同樣可以采用for,do…while,while結(jié)構(gòu)來完成,每個(gè)循環(huán)體內(nèi)的變量仍然采用無符號(hào)字符變量。
一個(gè)nop為1個(gè)指令周期,通過nop指令可以產(chǎn)生一定的延遲,但是對于快速的CPU來說效果不明顯,因此可以多寫幾個(gè),便可以多延遲幾個(gè)時(shí)鐘(具體應(yīng)該說是一個(gè)指令占用了3個(gè)時(shí)鐘脈沖);所以,一個(gè)for循環(huán)會(huì)執(zhí)行4*250個(gè)指令周期,那么總共延時(shí)4*250*ms個(gè)指令周期~~
delay取值足夠大就行了,不過不推薦用空循環(huán)做延時(shí),有兩個(gè)明顯缺點(diǎn):1,精度太差;2,CPU占用太高
用Sleep()函數(shù)方便多了:
#includestdio.h
#include windows.h
int main()
{
char* str="Windows";
int i=0;
for(i=0;*(str+i);i++)
{
printf("%c",*(str+i));
Sleep(500); //500毫秒
}
return 0;
}
下面是delay 函延遲函數(shù)里執(zhí)行的都是空語句,也就是說通過循環(huán)執(zhí)行空語句來達(dá)到延遲的目的.每執(zhí)行一條語句,即使是空語句都要耗費(fèi)電腦一些處理時(shí)間的,就是因?yàn)檫@個(gè),在延遲函數(shù)里寫一些無關(guān)緊要的東西,用來浪費(fèi)電腦處理時(shí)間,從而達(dá)到延遲目的。數(shù)原型:
原型:
void Delay(unsigned int nDelay)
{
unsigned int i,j,k;
for ( i=0;inDelay;i++ )
for ( j=0;j6144;j++ )
k++;
}
用法:#include system.h
功能:短暫延時(shí)
說明:延時(shí)msec*4毫秒所以,delay的延遲時(shí)間是和你的cpu時(shí)鐘周期相關(guān)的。