① c語言delay函數延時計算
C語言delay函數延時計算源代碼如下:
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i<121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
(1)c語言延時函數分鍾級擴展閱讀
1、對於要求精確延時時間更長,這時就要採用循環嵌套的方法來實現,因此,循環嵌套的方法常用於達到ms級的延時。
對於循環語句同樣可以採用for,do…while,while結構來完成,每個循環體內的變數仍然採用無符號字元變數。
② c語言的延遲函數 編寫
C語言的延遲函數一般是利用無意義程序運行來控制時間從而達到延時的目的
舉個例子:
for(i=0;i<x;i++)
for(j=0;j<120;j++);
這是延時x毫秒的for循環語句。
值得注意的是記得最後的;一定得記得寫。
③ 關於C語言的一些時間函數和延時函數都有哪些
標准庫的time.h里有幾個時間函數,先教你個實用的把
time_t time (time_t *timer)
計算從1970年1月1日到當前系統時間,並把結果返回給timer變數,函數本身返回的也是這個結果.time_t這個類型其實就是一個int.
double difftime ( time_t timer2, time_t timer1 )
把返回time2和time1所儲存的時間的差.
利用上面這兩個函數可以計算某階段程序運行用掉的時間.
例如:
#include <stdio.h>
#include <time.h>
int main ()
{
time_t start,end;
char szInput [256];
double dif;
time (&start);
printf ("Please, enter your name: ");
gets (szInput);
time (&end);
dif = difftime (end,start);
printf ("Hi %s.\n", szInput);
printf ("You have taken %.2lf seconds to type your name.\n", dif );
return 0;
}
輸出如下:
Please, enter your name: Juan Soulie
Hi Juan Soulie.
You have taken 3.00 seconds to type your name.
④ C語言delay能延時幾分鍾用嗎
可以啊
雖然有的平台,限制了delay的最大值
但你可以循環用啊。
比如
delay單位是毫秒的。 可以寫這樣的
voiddelay_second(intseconds)
{
inti;
for(i=0;i<seconds;i++)
delay(1000);
}
照這個思路,還可以delay分鍾,delay小時,delay若干天。。。
當然 隨著越來越久,誤差會有一些
不過影響不大。
延時10秒鍾,實際延時10.01秒 一樣沒事的。
延時10分鍾,多延時兩三秒也不會成為問題的。
⑤ 求個c語言小代碼,很簡單的分鍾倒計時程序
//有很多種方法,我這里用的是其中一種:
#include<stdio.h>
#include<Windows.h>
intmain(void){
intminutes;
printf("請輸入分鍾數: ");
scanf("minutes");
for(;minutes>=0;--minutes){
for(inti=60;i>=0;--i){
printf("還剩%d分鍾%d秒結束 ",minutes,i);//輸出剩餘時間
Sleep(1000);//延時函數延時一秒
};
};
printf("計時結束 ");
system("PAUSE");
return0;
};
//我沒上編譯器測試,但是具體架構就是這樣
⑥ C語言延時函數
C語言的延遲函數一般是利用無意義程序運行來控制時間從而達到延時的目的
舉個例子:
for(i=0;i<x;i++)
for(j=0;j<120;j++);
這是延時x毫秒的for循環語句。
值得注意的是記得最後的;一定得記得寫。
⑦ 在C語言程序中,延時函數的時間是怎麼算的
這個是和你機器的運算速度有關的
你要計算出這個函數用了多少時間就要用時間函數,我很久沒用了。
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i<121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
//time_t是在頭文件中定義的,可能是個結構體類型裡面的成員定義了一些時間的單位,如年、月、日。在這里調用這個結構體定義2個變數;
//start=time(null);
將其中一個變數賦值。它的值等於當前的系統時間
//end=time(null);
在程序結束的時候再給另一個變數賦值,值等於當前的系統時間。
//difftime(end,start)
函數difftime();是double類型,用來計算運行的時間,用第一個參數的時間減去第二個參數的時間,得到的值就是運行用了多少時間。單位為秒
⑧ 單片機C語言編程關於延時函數
單片機的C語言關於延時函數主要有兩種
一種是用for循環,通過單片機執行空指令達到延時的目的
如:
for(i=0;i<100;i++)
{
;
}
這個簡單的語句會執行100次空指令
每一次指令的時間可以大概確定
因此這個是最簡單的延時函數
第二種是通過定時器的方式來實現
定時器是通過對單片機的晶振進行計數
然後在定時器中斷服務函數裡面實現定時時間的計算及設置
51單片機的定時器0中斷服務函數為
void
time0()
interrupt
1
{
...
}
⑨ C語言編程中的延時
您好 這個延時函數很不穩定的,沒有固定的時間
如果您使用tc 您可以用sleep(微秒)來延時
使用vc的話有5種常用方式:
方式一:VC中的WM_TIMER消息映射能進行簡單的時間控制。首先調用函數SetTimer()設置定時間隔,如SetTimer(0,200,NULL)即為設置200ms的時間間隔。然後在應用程序中增加定時響應函數 OnTimer(),並在該函數中添加響應的處理語句,用來完成到達定時時間的操作。這種定時方法非常簡單,可以實現一定的定時功能,但其定時功能如同Sleep()函數的延時功能一樣,精度非常低,最小計時精度僅為30ms,CPU佔用低,且定時器消息在多任務操作系統中的優先順序很低,不能得到及時響應,往往不能滿足實時控制環境下的應用。只可以用來實現諸如點陣圖的動態顯示等對定時精度要求不高的情況。如示例工程中的Timer1。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式二:VC中使用sleep()函數實現延時,它的單位是ms,如延時2秒,用sleep(2000)。精度非常低,最小計時精度僅為30ms,用sleep函數的不利處在於延時期間不能處理其他的消息,如果時間太長,就好象死機一樣,CPU佔用率非常高,只能用於要求不高的延時程序中。如示例工程中的Timer2。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式三:利用COleDateTime類和COleDateTimeSpan類結合WINDOWS的消息處理過程來實現秒級延時。如示例工程中的Timer3和Timer3_1。以下是實現2秒的延時代碼:
COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time= COleDateTime::GetCurrentTime()-start_time;
while(end_time.GetTotalSeconds()< end_time =" COleDateTime::GetCurrentTime()-start_time;">
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式四:在精度要求較高的情況下,VC中可以利用GetTickCount()函數,該函數的返回值是 DWORD型,表示以ms為單位的計算機啟動後經歷的時間間隔。精度比WM_TIMER消息映射高,在較短的定時中其計時誤差為15ms,在較長的定時中其計時誤差較低,如果定時時間太長,就好象死機一樣,CPU佔用率非常高,只能用於要求不高的延時程序中。如示例工程中的Timer4和Timer4_1。下列代碼可以實現50ms的精確定時:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);
為使GetTickCount()函數在延時或定時期間能處理其他的消息,可以把代碼改為:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);
雖然這樣可以降低CPU的佔有率,並在延時或定時期間也能處理其他的消息,但降低了延時或定時精度。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
方式五:與 GetTickCount()函數類似的多媒體定時器函數DWORD timeGetTime(void),該函數定時精度為ms級,返回從Windows啟動開始經過的毫秒數。微軟公司在其多媒體Windows中提供了精確定時器的底層API持,利用多媒體定時器可以很精確地讀出系統的當前時間,並且能在非常精確的時間間隔內完成一個事件、函數或過程的調用。不同之處在於調用DWORD timeGetTime(void) 函數之前必須將 Winmm.lib 和 Mmsystem.h 添加到工程中,否則在編譯時提示DWORD timeGetTime(void)函數未定義。由於使用該函數是通過查詢的方式進行定時控制的,所以,應該建立定時循環來進行定時事件的控制。如示例工程中的Timer5和Timer5_1。
⑩ C語言delay能延時幾分鍾用嗎
delay取值足夠大就行了,不過不推薦用空循環做延時,有兩個明顯缺點:1,精度太差;2,CPU佔用太高
用Sleep()函數方便多了:
#include<stdio.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;
}