C 参数为float的sleep()不起作用
我创建了简单的代码来测试sleep()函数。在C 我尝试执行以下代码,程序在终止前等待5秒:C 参数为float的sleep()不起作用,c,floating-point,sleep,C,Floating Point,Sleep,我创建了简单的代码来测试sleep()函数。在C 我尝试执行以下代码,程序在终止前等待5秒: #include <stdlib.h> #include <stdio.h> int main(){ int n=0; for (n=1;n<=10;n++){ sleep(.5); } return 0; } #包括 #包括 int main(){ int n=0; 对于(n=1;nTypeman3 sleep并阅读它
#include <stdlib.h>
#include <stdio.h>
int main(){
int n=0;
for (n=1;n<=10;n++){
sleep(.5);
}
return 0;
}
#包括
#包括
int main(){
int n=0;
对于(n=1;nTypeman3 sleep
并阅读它
sleep
需要一个unsigned int
参数。它只能睡眠整秒
如果向它传递不同数值类型的参数,它将隐式转换为无符号int
。将浮点值转换为整数类型会截断
这是假设sleep
函数的声明是可见的。在您的程序中,您没有所需的#include
。在C99或更高版本中,调用没有可见声明的函数是非法的。在C90中,编译器将对函数进行某些假设。在这种情况下,您的程序的行为是不可见的罚款
所以sleep(.5)
相当于sleep(0)
在系统文档中搜索usleep
(微秒)或nanosleep
(纳秒).我很惊讶1k用户的研究如此之少。快速查看文档会发现,sleep
以整数为参数。在这里也很容易找到第二个问题的答案。另外,可能重复,请阅读标记说明。调试标记完全不适合t他的问题。你没有得到一个关于sleep
的暗示声明的警告吗?请不要这么想,但这可能是投票失败的一个原因。
#include <stdlib.h>
#include <stdio.h>
int main(){
int n=0;
for (n=1;n<=10;n++){
sleep(1);
}
return 0;
}