C語言輸出的語句之間能不能設置時間間隔?
這個延時的功能實現起來不難,C語言里面實現實現的方式很多,這里簡單講幾種應用比較普遍的。
1、延時在一般的流程中,上一條指令執行完畢就按順序執行下一條。在這里就體現為控制臺的兩條輸出語句同時輸出了,這里自然有個時間上的間隔,但以眼睛來看就是如此。
那么,依舊是這個原理如何實現間隔10秒再輸出下一條語句?
我們可以在兩條語句之間加入空指令,比如nop;然后粗略得到100次nop指令執行的時間,以此為基礎使用for循環或者do while來控制nop執行的次數。這樣就能達到題主的目的。
for(int i=0;i++;i<100)
{nop;}
2、定時器定時器的應用會出現一個中斷的概念,也可以理解為回調。當我們設置定時的長短,定義中斷函數后,就可以開啟定時器。
這個計時和你現在main函數中指令運行是獨立的。只是到特定時間,產生一個中斷,然后提示你時間到了。
我們就可以通過判斷相關的時間標志位來確定是否到達10秒的延時。
3、RTOS說RTOS只是舉個例子,在widows平臺下也是一樣的道理。
我們需要延時的時候,只需要按照第一種方式調用一個延時函數,如delay_ms(x)。
但是實際的執行效果卻有點像第二種方式,CPU繼續執行其它的線程。這里是基于操作系統了,要說清楚又是另一個問題了。
建議題主了解一下調度。
最后,感謝大家的閱讀。
上一篇富媒體是什么概念的由來
下一篇魔獸世界60年代PVP