小编kid*_*kid的帖子

C- while循环未解释的行为

我试图运行以下代码:

#include <sys/time.h>
#include <stdio.h>

int main()
{
unsigned int ms, oldms = 0,dif;
struct timeval tv;
while(1)
{
 gettimeofday(&tv, NULL);
 ms=tv.tv_sec; 
 //printf("%d\n",ms-oldms );
 dif=ms-oldms;
 if(dif>3)
   {    
        printf("3 seconds up");
        oldms=ms;
   }
 }
}
Run Code Online (Sandbox Code Playgroud)

我希望它每隔3秒打印一次"3秒钟",但它不会显示该消息.我尝试使用gdb调试它,但似乎没有任何错误,仍然没有输出.在尝试调试时,我添加了一个printf语句,并且可以看到输出.

如果我在删除// printf("%d \n",ms-oldms)之后运行程序; 声明,再没有输出.我不确定发生了什么,是否依赖于任何事情.

$ gcc --version gcc(Ubuntu 4.8.2-19ubuntu1)4.8.2

c printf loops while-loop

5
推荐指数
1
解决办法
158
查看次数

标签 统计

c ×1

loops ×1

printf ×1

while-loop ×1