测试代码如下:
#include <stdio.h>
#include <time.h>
int main()
{
time_t starti, endi;
int i;
int key;
starti = clock();
for (i = 0; i < 100000000; i++)
{
if (3>2)
key = 3;
else
key = 2;
}
endi = clock();
printf("if..else一亿次:%ld\n",endi-starti);
starti = clock();
for (i = 0; i < 100000000; i++)
{
key = (3>2)?3:2;
}
endi = clock();
printf("三目运算符一亿次:%ld\n",endi-starti);
return 0;
}
为减小误差,测试5次结果如下:
使用code::blocks生成
同样的代码,使用VS编译生成后运行如下
这里不讨论编译器的问题,可以发现,两种方法效率是相当的
版权声明:本文原创,转载请注明来自 http://kymjs.com/