C语言中delay()和sleep()的区别?
函数delay()和sleep()都会暂停系统一段时间,delay以毫秒为参数,sleep以秒为参数。除此之外,这两种功能有什么区别吗?其中,哪一个能给出更准确的结果呢?除了一个睡眠秒数,而另一个睡眠毫秒数之外,他们做的都一样 你应该选择: 如果你可以,请用C++代替。windows.h有Sleep,unix有usleep 这是另一个在线实现,可能更适合您的需要:C语言中delay()和sleep()的区别?,c,delay,sleep,C,Delay,Sleep,函数delay()和sleep()都会暂停系统一段时间,delay以毫秒为参数,sleep以秒为参数。除此之外,这两种功能有什么区别吗?其中,哪一个能给出更准确的结果呢?除了一个睡眠秒数,而另一个睡眠毫秒数之外,他们做的都一样 你应该选择: 如果你可以,请用C++代替。windows.h有Sleep,unix有usleep 这是另一个在线实现,可能更适合您的需要: #if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || def
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) || defined(__TOS_WIN__)
#include <windows.h>
inline void delay( unsigned long ms )
{
Sleep( ms );
}
#else /* presume POSIX */
#include <unistd.h>
inline void delay( unsigned long ms )
{
usleep( ms * 1000 );
}
#endif
#如果已定义(uuWin32)|已定义(WIN32)|已定义(WIN32)|已定义(uuU视窗)|已定义(uu TOS_uuuuu)
#包括
内联无效延迟(无符号长毫秒)
{
睡眠(ms);
}
#else/*假设POSIX*/
#包括
内联无效延迟(无符号长毫秒)
{
usleep(ms*1000);
}
#恩迪夫
睡眠将按指定数量放弃CPU,以便其他进程可以执行。
虽然Delay只是忙于等待金额到期,然后在到期后继续,但在此期间它不会执行任何其他进程。这两个函数都不是标准的库函数。你指的是哪个库?我想通常
sleep()
会在睡眠期间释放处理器,而delay()
需要CPU使用,但我不太确定。Dos.h不是标准库的一部分。这两个函数都只保证会产生近似的延迟。所有其他的副作用都是实现定义的。如果你不明白我对你的其他问题的答案,那么在评论中问一下怎么样?就像这样。。。突然提到dos.h
意味着这个问题是关于MS-dos
。这是现在没人会想到的@RohanGayen您应该明确这些内容并添加适当的标签。。。无论是<代码> DELAY()/> > NO> <代码>睡眠()>代码>都是标准的C函数。我猜他使用的是Borland Turbo C++ 3,所以他不会有<代码> <代码>。
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) || defined(__TOS_WIN__)
#include <windows.h>
inline void delay( unsigned long ms )
{
Sleep( ms );
}
#else /* presume POSIX */
#include <unistd.h>
inline void delay( unsigned long ms )
{
usleep( ms * 1000 );
}
#endif