❶ C語言問題:延遲的代碼是什麼例如暫停一秒後再運行
我看C函數的書好像是sleep(n);n是以秒為單位的;
delay(n);n是以毫秒為單位的;
應該是sleep(1)或者是delay(1000);
不過這個好內像是只能在編譯器容的環境下才能執行;
雙擊生成的exe文件好像就不能執行了,到底是什麼原因我弄了很長時間也沒搞清楚;我的老師們也不知道是怎麼回事!
❷ 頭文件聲明的函數名稱的函數體在哪裡
這個分兩種情況討論,一種是系統自帶的函數;另一種是自己定義的函數。具體如下:
1.你自己寫的函數, 你會在另外一個文件里(X.c 或者 X.cpp)里提供函數體,然後編譯器在編譯的時候,把函數體編譯出來放在 X.obj 里,最後鏈接的時候,鏈接程序在 X.obj 里找到函數,然後使用。
2.系統提供的函數,它本來也有X.c(或者X.cpp),並編譯生成X.obj, 然後再生成 X.lib,再後他們只給了你 X.lib (所以沒有X.c和X.cpp);當你的程序在鏈接的時候,直接在X.lib找到函數體。
❸ c語言的 sleep函數到底在哪個頭文件里啊
在<windows.h>裡面。
在VC中使用時,sleep函數的頭文件為windows。h,在linux下,gcc編譯器中,使用的頭文件因版本的不同而不同
在VC中,Sleep中的第一個英文字元為大寫的"S",在linux下不要大寫,在標准C中是sleep,不要大寫,簡單的說VC用Sleep,別的一律使用sleep
在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000);在Linux下,sleep()裡面的單位是秒,而不是毫秒。
(3)linuxdelay頭文件擴展閱讀:
Windows.h頭文件之所重要,是因為頭文件封裝了許多庫函數以及一些類,將一些復雜的工作由庫函數處理,Windows.h頭文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等頭文件,涉及到了Windows內核API,圖形界面介面,圖形設備函數等重要的功能。
在C語言家族程序中,頭文件被大量使用。一般而言,每個C++/C程序通常由頭文件和定義文件組成。頭文件作為一種包含功能函數、數據介面聲明的載體文件,主要用於保存程序的聲明,而定義文件用於保存程序的實現。
❹ C語言包含頭文件了還報錯
俺是初學者,還沒用過你這些東西
不過你用的這個參數和頭文件里的一專樣嗎
是不是敲屬 的不一樣
到底是"FNDELAY"
還是"FNEDLAY"啊
你這個參數是自己的還是標准庫里的阿
標准庫最好用<xxxx.h>
自己定義的就用"xxxx.h"
試試看
❺ linux dos.h 找不到 怎麼辦 在線等
你用了 dos.h裡面的什麼函數
linux 有相應的函數
dos.h for linux 參考下面這個地址
❻ c語言有個可以使程序延時的語句是什麼
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); 示例: #include<dos.h> int main(void) { sound(440); delay(500); nosound(); return 0; }delay()是循環等待,該進程還在運行,佔用處理器。sleep()不同,它會被掛起,把處理器讓給其他的進程。
❼ C語言中的sleep() 函數
使用要帶上頭文件:
#include <windows.h>
Sleep函數:
功 能: 執行掛起一段時間
用 法: unsigned sleep(unsigned seconds);
注意:
1.在VC中使用帶上頭文件#include <windows.h>,在Linux下,gcc編譯器中,使用的頭文件因gcc版本的不同而不同#include <unistd.h>
2.在VC中,Sleep中的第一個英文字元為大寫的"S" ,在linux下不要大寫,在標准C中是sleep, 不要大寫,簡單的說VC用Sleep, 別的一律使用sleep。
3.在VC中,Sleep()裡面的單位,是以毫秒為單位,所以如果想讓函數滯留1秒的話,應該是Sleep(1000); 在Linux下,sleep()裡面的單位是秒,而不是毫秒。
示例:
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
delay()是循環等待,該進程還在運行,佔用處理器。
sleep()不同,它會被掛起,把處理器讓給其他的進程。
❽ udelay在在linux中都有哪些功能
1.
udelay(); mdelay(); ndelay();實現的原理本質上都是忙等待,ndelay和mdelay都是通過udelay衍生出來的,我們使用這些函數的實現往往會碰到編譯器的警告implicit declaration of function'udelay',這往往是由於頭文件的使用不當造成的。在include/asm-???/delay.h中定義了udelay(),而在include/linux/delay.h中定義了mdelay和ndelay.
udelay一般適用於一個比較小的delay,如果你填的數大於2000,系統會認為你這個是一個錯誤的delay函數,因此如果需要2ms以上的delay需要使用mdelay函數。
2.由於這些delay函數本質上都是忙等待,對於長時間的忙等待意味這無謂的耗費著cpu的資源,因此對於毫秒級的延時,內核提供了msleep,ssleep等函數,這些函數將使得調用它的進程睡眠參數指定的時間。
應用層:
#include <unistd.h>
1、unsigned int sleep(unsigned int seconds); 秒級
2、int usleep(useconds_t usec); 微秒級:1/10^-6
#define _POSIX_C_SOURCE 199309
#include <time.h>
3、int nanosleep(const struct timespec *req, struct timespec *rem);
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
// The value of the nanoseconds field must be in the range 0 to 999999999.
內核層:
include <linux/delay.h>
1、void ndelay(unsigned long nsecs); 納秒級:1/10^-10
2、void udelay(unsigned long usecs); 微秒級: 1/10^-6
3、void mdelay(unsigned long msecs); 毫秒級:1/10^-3
sleep_on(), interruptible_sleep_on();
sleep_on_timeout(), interruptible_sleep_on_timeout();
根據你的情況選用這些函數,注意: sleep操作在kernel必須小心、小心。。。
udelay()等函數是cpu忙等,沒有傳統意義上的sleep。這些函數相當於我們平時的阻塞讀、寫之類的語義,主要用於等外設完成某些操作