有人可以给我解释一下这个功能吗?

标签 c

我一直想要一个暂停功能,现在我找到了。作为 C 的初学者,我不能确定,但​​它看起来像 <clock.h> 中的函数. 我想将它实现到我的代码中,但不是不理解它。

void wait(int seconds){
    clock_t start, end;
    start = clock();
    end = clock();
    while (((end-start) / CLOCKS_PER_SEC) = !seconds)
        end = clock();
}

最佳答案

这只是一个忙等待循环,这是实现延迟的一种非常讨厌的方式,因为它在什么都不做的情况下将 CPU 固定在 100%。使用 sleep()相反:

#include <unistd.h>

void wait(int seconds)
{
    sleep(seconds);
}

另请注意,问题中给出的代码存在错误:

while (((end-start) / CLOCKS_PER_SEC) = !seconds)

应该是:

while (((end-start) / CLOCKS_PER_SEC) != seconds)

或者更好:

while (((end-start) / CLOCKS_PER_SEC) < seconds)

(但如上所述,您甚至不应该使用此代码)。

关于有人可以给我解释一下这个功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35196530/

相关文章:

c - 我怎样才能将一个程序附加到另一个程序然后运行它?

c - GDB,继续递归函数,在精确的步数后无法停止

c - "struct{...} x, y, z;"是什么意思?

c++ - 使用 iptables 共享来自两个不同连接的 Internet 连接

c - .o 与 C 中的 .out

c - 将 int[][] 形式的变量传递给 int 类型的方法**

c - H264 视频 + Speex 音频通过 RTP 流式传输?

c - 为什么这个程序的输出会在 130 处发生变化?

C11 _Generic 用法

c - 使用 getchar() 是/否用户提示