編寫延時迴圈

2021-06-17 21:55:59 字數 802 閱讀 4516

long wait=0;

while (wait<10000)

wait++;         //coutinng silenting

這種方法的問題是,當計算機的處理速度發生變化時,必須修改技術限制。例如,有些為ibm  pc編寫的遊戲在速度更快的機器上執行時,其速度將得到無法控制;另外,有些編譯器可能修改上述**,將wait設定為10000,從而跳過該迴圈。更好的方法是讓系統迴圈來完成這種任務。

ansi c和c++庫中有乙個函式有助於完成這樣的工作。這個函式的名為clock(),返回程式開始執行後所用的系統時間。這兒有兩個複雜的問題:首先clock返回的時間單位不一定是秒;其次,該函式的返回型別在某些系統上可能是long,在另一些系統上可能是 unsigned long或者其他的型別。

但標頭檔案ctime (較早的實現中為time.h)提供了這些問題的解決方法。首先,它定義了乙個符號常量—clocks_per_sec,該常量等於每秒鐘包含的系統時間位數。因此,將系統時間除以這個值,可以得到秒數。或者將秒數乘以clock_per_sec,可以得到以系統時間為單位的時間。其次,ctime將clock_t作為clock()返回型別的別名,這意味著可以將變數申明為clock_t型別,編譯器將把他轉換為long,unsigned int或適合系統的其他型別。

下面的程式演示啦如何使用clock()和標頭檔案ctime來建立延遲迴圈。

該程式以系統時間單位為單位(而不是以秒為單位)計算延遲時間,避免了在每輪迴圈中將系統時間轉換為秒。

延時迴圈 clock

延遲迴圈 include include using namespace std int main 測試clock 的意義 include include using namespace std int main cout clocks per sec endl 輸出clocks per sec的值...

51軟體延時函式編寫

51軟體延時函式編寫 void delay uint z z賦值多少,此函式迴圈時間就為多少ms 進入for迴圈時時刻為0.00043294s 然後讓他執行完for迴圈 執行完for迴圈後的時刻為0.00143338s 將數值相減後得到0.00100044s約等於1s 以上延時函式僅適用於晶振頻率為...

VBA研究 VBA中編寫延時函式

1 一般延時 乙個應用介面需要限制執行速度,需要在迴圈中加個延時函式,這個延時不需要多麼精確,要求有個幾秒延時,網上用的比較多的就是用timer函式編寫,timer是vba自帶的函式,用起來比較方便,一般程式如下 延時程式 sub delay t as single dim time1 as sin...