c语言1秒可以执行多少次?
计算机1秒的次数指做加法的次数。
for
循环1秒的次数,要看你循环中有没有处理语句,有处理语句就要
用时间语句测试了,gettickcount()就是测试时间的。
如果只有for循环,没有动作语句,那就厉害了,上亿级个循环次数了。上亿级个循环次数 不能单纯的说C语言1秒多少循环,跟处理器指令执行周期相关。
C语言:用for循环语句编程输出1—20之间的所有整数?
因为i的缘故,你的内层循环只能一共运行五次,这个时候one+two*2+five*5=25,永远都到不了100,所以什么都没输出。
到了内层的for结束之后,外层开始了新的one和two,这个时候内层循环已经因为i的缘故再也不跑了,结果你白白空转了1.411秒(话说你的机器好烂啊,才5000个循环
C语言输出的语句之间能不能设置时间间隔,比如第一个输出语句在控制台输出后,间隔10秒再输出下个输出语句,怎么样?
可以用sleep函数。这个函数在windows.h头文件中,如果是linux系统,在unistd.h头文件,sleep() 函数的单位为ms, Sleep(10000);语句就可以实现滞留10s
直接贴上源码,以及运行结果吧!
#include <stdio.h>#include <sys/time.h>#include <unistd.h>int main(int argc, char const *argv[]){ /* code */ struct timeval tv; gettimeofday(&tv, NULL);long s_time = tv.tv_sec; # 获取当前时间
printf("开始时间为:%ld\n",s_time); printf("hello_word!\n"); #输出语句
sleep(10); # 间隔10秒输出
printf("end\n"); # 输出语句
gettimeofday(&tv, NULL); long e_time = tv.tv_sec; #获取当前时间
printf("结束时间为:%ld\n",e_time);
printf("间隔时间为:%ld\n",e_time-s_time); #输出间隔时间
return 0;}
这个延时的功能实现起来不难,C语言里面实现实现的方式很多,这里简单讲几种应用比较普遍的。
1、延时
在一般的流程中,上一条指令执行完毕就按顺序执行下一条。在这里就体现为控制台的两条输出语句同时输出了,这里自然有个时间上的间隔,但以眼睛来看就是如此。
那么,依旧是这个原理如何实现间隔10秒再输出下一条语句?
我们可以在两条语句之间加入空指令,比如nop;然后粗略得到100次nop指令执行的时间,以此为基础使用for循环或者do while来控制nop执行的次数。这样就能达到题主的目的。
for(int i=0;i++;i<100)
{nop;}
2、定时器
定时器的应用会出现一个中断的概念,也可以理解为回调。当我们设置定时的长短,定义中断函数后,就可以开启定时器。
这个计时和你现在main函数中指令运行是独立的。只是到特定时间,产生一个中断,然后提示你时间到了。
我们就可以通过判断相关的时间标志位来确定是否到达10秒的延时。
3、RTOS
说RTOS只是举个例子,在widows平台下也是一样的道理。
我们需要延时的时候,只需要按照第一种方式调用一个延时函数,如delay_ms(x)。
但是实际的执行效果却有点像第二种方式,CPU继续执行其它的线程。这里是基于操作系统了,要说清楚又是另一个问题了。
建议题主了解一下调度。
最后,感谢大家的阅读。

