我用的程序
#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;
}
怪我咯2017-04-17 13:12:29
gcc是個編譯器。 。和cl.exe是一個等級的。
頂多就能讓你的sqrt(4);
直接優化成數字2,
例如這個情況就不用-lm
C
#include<stdio.h> int main(){ printf("%d",(int)sqrt(4)); }
不能只能處理相關的連結庫問題,
畢竟誰都不知道到底程式設計師會不會自己手動寫了個libm.so。
凡是用到的動態連結函式庫都得自己寫-l參數,
例如這個情況預設就不會直接把sqrt(4)
優化成(double)2
:
C
#include<stdio.h> int main(){ int i=4; printf("%d",(int)sqrt(i)); }
PHP中文网2017-04-17 13:12:29
手邊沒有VC++編譯器,應該是已經合併到msvcrt裡了,跟thread一樣,linux下還要-lpthread,VC就不用了。
http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library-support-in-visual-studio-2013.aspx