簡介: 函數名: sleep
功 能: 執行掛起一段時間
用 法: unsigned sleep(unsigned seconds);
在VC中使用帶上頭文件
#include <windows.h>
在gcc編譯器中,使用的頭文件因gcc版本的不同而不同
linux系統需要添加的頭文件 #include <unistd.h>
注意
:
在VC中Sleep中的第一個英文字符為大寫的"S"
在標准C中是sleep, 不要大寫.. 下面使用大寫的來說明,, 具體用什么看你用什么編譯器. 簡單的說VC用Sleep, 別的一律使用sleep.
Sleep函數的一般形式:
Sleep(unisgned long);
其中,Sleep()里面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000);
在Linux下,sleep中的“s”不大寫
sleep()里面的單位是秒,而不是毫秒。
linux下,用g++編譯,得添加unistd.h頭文件,gcc則加不加都可以,因為標准C中有sleep文件了。
例
#include <windows.h>
int main()
{
int a;
a=1000;
Sleep(a);/* VC 使用Sleep*/
return 0;
}
應用程序:
#include <syswait.h>
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驅動程序:
#include <linux/delay.h>
mdelay(n) //milliseconds 其實現
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif
調用asm/delay.h的udelay,udelay應該是納秒級的延時
Dos:
sleep(1); //停留1秒
delay(100); //停留100毫秒
Windows:
Sleep(100); //停留100毫秒
Linux:
sleep(1); //停留1秒
usleep(1000); //停留1毫秒
每一個平台不太一樣,最好自己定義一套跨平台的宏進行控制
秒還是微秒?關於延時函數sleep()
http://blog.csdn.net/jiangxinyu/article/details/7754664