我用的程序
#include<stdio.h>
#include<math.h>
#include<sys/time.h>
int main()
{
struct timeval start,end;
gettimeofday(&start,NULL);
long long i;
double temp;
for(i=0;i<10000000;i++)
{
temp=sqrt(i);
}
gettimeofday(&end,NULL);
long timeuse =1000000 * ( end.tv_sec - start.tv_sec ) \
+ end.tv_usec - start.tv_usec;
printf("\ntime=%f\n",timeuse /1000000.0);
return 0;
}
gcc是个编译器。。和cl.exe是一个级别的。
顶多就能让你的sqrt(4);直接优化成数字2,
例如这个情况就不用-lm
#include<stdio.h>
int main(){
printf("%d",(int)sqrt(4));
}
不能只能处理相关的链接库问题,
毕竟谁都不知道到底程序员会不会自己手动写了个libm.so。
凡是用到的动态链接库都得自己写-l参数,
例如这个情况下默认就不会直接把sqrt(4)优化成(double)2:
#include<stdio.h>
int main(){
int i=4;
printf("%d",(int)sqrt(i));
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。