Sleep函數:功 能: 執行掛起一段時間 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用帶上頭文件#include windows.h 在VC中,Sleep中的第一個英文字符為大寫的"S" ,在標準C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep 在VC中,Sleep()里面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()里面的單位是秒,而不是毫秒。 示例: #include windows.h int main() { int a; a=1000; Sleep(a); return 0; } usleep函數:功能: usleep功能把進程掛起一段時間, 單位是微秒us(百萬分之一秒)。 delay函數: 功 能: 將程序的執行暫停一段時間,單位是毫秒ms(千分之一秒) 用 法: void delay(unsigned milliseconds); 示例: #includedos.h int main(void) { sound(440); delay(500); nosound(); return 0; }delay()是循環等待,該進程還在運行,占用處理器。sleep()不同,它會被掛起,把處理器讓給其他的進程。
創新互聯是一家專業提供萊州企業網站建設,專注與成都網站設計、成都做網站、H5建站、小程序制作等業務。10年已為萊州眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
1)首先要知道你用的是什么C語言?
2)其次要知道你的編程環境:是在DOS下編程?還是在Windows下編程?還是為嵌入式系統編程?
3)第三步才是找對應的C語言環境下有沒有延時函數?
4)如果是單線程程序,沒有可用函數庫,就編個循環,在開始時去取系統時間(時間以毫秒表示),然后在每次循環中取當前時間,如果前后時間差達到1秒,則退出循環,這個精度一般不高。
如果更準確一點,通過時間中斷器,在時間達到1秒后產生中斷,這個方法精度好一些。
1、用sleep延時刷新并獲取系統時間來顯示。
2、例程:
#includegraphics.h?
#includemath.h?
#includedos.h?
#define?PI?3.1415926?
//屏幕中心的坐標(640X480模式下)
#define?mid_x?320?
#define?mid_y?240?
int?main()?
{?int?graphdriver=DETECT,graphmode;?
int?end_x,end_y;?
struct?time?curtime;?
float?th_hour,th_min,th_sec;?
initgraph(graphdriver,graphmode,"C:\\TC2");?//初始化VGA屏幕模式
setbkcolor(BLACK);?//使用黑色的背景色
while(!kbhit(0))?//若有鍵盤輸入,則跳出,即是結束程序
{?setcolor(GREEN);?//把畫筆設為綠色
circle(mid_x,mid_y,180);?//鐘的外圓
circle(mid_x,mid_y,150);?//鐘的內圓
circle(mid_x,mid_y,1);?//畫出鐘的圓心
gettime(curtime);?//取得系統當前時間
th_sec=(float)curtime.ti_sec*0.1047197551;?//把秒針的角度化為弧度,為以后繪制時方便,下同
th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0;?//分針的弧度
th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0;?//時度的弧度,注意整時是12等分的,所時乘的是3.14/180*5
//計算出時針的尾的坐標(時針長70)
end_x=mid_x+70*sin(th_hour);?
end_y=mid_y-70*cos(th_hour);?
setcolor(RED);?
line(mid_x,mid_y,end_x,end_y);?//用紅色線畫出時針
//計算出分針坐標(分針長110)
end_x=mid_x+110*sin(th_min);?
end_y=mid_y-110*cos(th_min);?
setcolor(RED);?
line(mid_x,mid_y,end_x,end_y);?//用紅色畫出分針
end_x=mid_x+140*sin(th_sec);?
end_y=mid_y-140*cos(th_sec);?
setcolor(RED);?
line(mid_x,mid_y,end_x,end_y);?//同上,畫出秒針,長為140
//畫出鐘盤上的刻度,刻度長20
line(140,240,160,240);?//9點對應的大刻度
line(320,60,320,80);?//12點對應的大刻度
line(500,240,480,240);?//3點的刻度
line(320,420,320,400);?//6點的刻度
line(410,395.7,400,378.4);?//5點
line(475.7,330,458.4,320);?//4點
line(475.7,150,458.4,160);?//2點
line(410,84.3,400,101.6);?//1點
line(230,84.3,240,101.6);?//11點
line(164.3,150,181.6,160);?//10點
line(164.3,330,181.6,320);?//8點
line(230,395.7,240,378.4);?//7點
sleep(BLUE);?//這里應該是打錯,停止一秒,應為sleep(1000)
cleardevice();?//清除屏幕上的顯示
}?
closegraph();?//關閉VGA屏幕,即返回文本方式
return?0;?
}
下面是delay
函數原型:
原型:
void
Delay(unsigned
int
nDelay)
{
unsigned
int
i,j,k;
for
(
i=0;inDelay;i++
)
for
(
j=0;j6144;j++
)
k++;
}
用法:#include
system.h
功能:短暫延時
說明:延時msec*4毫秒所以,delay的延遲時間是和你的cpu時鐘周期相關的
可以用以下兩種方式
1.sleep(n);n是以毫秒為單位的;
2.delay(n);n是以毫秒為單位的;
例如延遲一秒是sleep(1)或者是delay(1000);
網頁題目:延時一秒的c語言函數,c語言延時函數用法
轉載來源:http://vcdvsql.cn/article28/hedejp.html
成都網站建設公司_創新互聯,為您提供商城網站、移動網站建設、網站導航、手機網站建設、品牌網站制作、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯