Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中delay()和sleep()的区别?_C_Delay_Sleep - Fatal编程技术网

C语言中delay()和sleep()的区别?

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

函数delay()和sleep()都会暂停系统一段时间,delay以毫秒为参数,sleep以秒为参数。除此之外,这两种功能有什么区别吗?其中,哪一个能给出更准确的结果呢?

除了一个睡眠秒数,而另一个睡眠毫秒数之外,他们做的都一样

你应该选择:

如果你可以,请用C++代替。windows.h有Sleep,unix有usleep

这是另一个在线实现,可能更适合您的需要:

#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