在C/C++中,一般for循环中执行一次需要多少时间?

在C/C++中,一般for循环中执行一次需要多少时间?比如for(i=0;i<10000;i++)请详细说明一下.... 在C/C++中,一般for循环中执行一次需要多少时间?
比如
for (i=0;i<10000;i++)
请详细说明一下.
展开
 我来答
匿名用户
2013-07-25
展开全部
执行的速度是和平台有关的,没有一个确切的规定,就如同同一个引用程序在P4的电脑上和P2的电脑上运行所需要的时间是不同的一样。
你需要了解很多方面的只是,首先,你得知道目标平台处理器的确切主频,即多少MHZ。还要了解编译器会将这些代码编译成多少条机器指令,并了解这些机器指令的执行周期。
例如12MHz的8051单片机的指令周期为1us。而for语句需要经过mov dec jnz等多条指令,所以它至少需要1000*3*1us,也就是肯定要高于30000us
匿名用户
2013-07-25
展开全部
可以自己计算
clock_t start=clock();
for (i=0;i<10000;i++) {}
clock_t finish=clock();
double totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浅笑心花无涯
推荐于2016-03-30 · TA获得超过2万个赞
知道大有可为答主
回答量:2780
采纳率:85%
帮助的人:407万
展开全部
不同的编译软件,对 for 语句的编译也不尽相同,以keil 为例,对 for(i=0;i<1;i++) n++;(i,n 均为 char 型或 unsigned char 型)进行编译,得:
①一条赋值语句(i=0) 2个机械周期,
②一条判断语句(i<1) 4个机械周期,
③一条自增语句(n++) 1个机械周期,
④又一条自增语句(i++) 1个机械周期,
⑤又一条判断语句(i<1) 4个机械周期,结束。
共计 12个机械周期。
而且,如果 i 或 n 为 int 型,单片机为 8位单片机,那么结果也不一样,8位单片机只能进行8位运算,对 int 型的 16位数据,需要进行 拆分(分高、低8位),判断时需先比较高8位,条件无法判断,再进行比较低8位。16位数据 赋值 与 自增 运算也是需要想进行低8位运算,再根据 借位(进位)结果进行高8位运算。整个过程增加了不少执行周期,远大于12个机械周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
她是我的小太阳
高粉答主

2015-10-23 · 醉心答题,欢迎关注
知道顶级答主
回答量:5.1万
采纳率:83%
帮助的人:8943万
展开全部
机器周期当然是在单片机上才有的说法,不同的单片机采用不同的编译软件,最终都是转成汇编、机器码烧录进单片机。
不同的编译软件,对 for 语句的编译也不尽相同,以keil 为例,对 for(i=0;i<1;i++) n++;(i,n 均为 char 型或 unsigned char 型)进行编译,得:
①一条赋值语句(i=0) 2个机械周期,
②一条判断语句(i<1) 4个机械周期,
③一条自增语句(n++) 1个机械周期,
④又一条自增语句(i++) 1个机械周期,
⑤又一条判断语句(i<1) 4个机械周期,结束。
共计 12个机械周期。
而且,如果 i 或 n 为 int 型,单片机为 8位单片机,那么结果也不一样,8位单片机只能进行8位运算,对 int 型的 16位数据,需要进行 拆分(分高、低8位),判断时需先比较高8位,条件无法判断,再进行比较低8位。16位数据 赋值 与 自增 运算也是需要想进行低8位运算,再根据借位(进位)结果进行高8位运算。整个过程增加了不少执行周期,远大于目前的12个机械周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-25
展开全部
千分之一秒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式