【发布时间】:2014-02-27 02:27:56
【问题描述】:
哪个操作需要更多 CPU 时钟、modulo 或 comparison?
这段代码需要更多时间吗:
for(j = i; j <= 10; j++)
{
if(j == 10) printf("0");
else printf("%d", j);
}
或者这个
for(j = i; j <= 10; j++)
printf("%d", j % 10);
为什么?
【问题讨论】:
-
如果你想比较汇编代码,你可以反汇编可执行文件(或使用
gcc -S)并检查代码,也可以使用优化标志 -
几乎相同,因为 printf() 99% 的时间都会吃掉。如果你把它清理干净,@Javier 的答案是正确的。
标签: c division modulo cpu-cycles