看板 C_and_CPP 關於我們 聯絡資訊
小弟在linux底下使用gcc的時候, 遇到問題想要請教大家: (a).下列這段code編譯需要使用-lm來link libm #include <stdio.h> #include <math.h> int main(void){ double i=3; printf("%f\n",pow(i,i)); return 0; } > gcc pow1.c -lm (b).承上,這段code卻不需要-lm,請問理由為何? #include <stdio.h> #include <math.h> int main(void){ printf("%f\n",pow(3,3)); return 0; } > gcc pow2.c -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.227.2 ※ 編輯: apey 來自: 114.34.227.2 (04/30 23:47)
purpose:前幾天才有討論過,因為編譯器直接計算pow(3,3)的值 05/01 00:42
purpose:直接幫你替換成printf("%f\n", 結果); 05/01 00:42
dayyeah:應該還有另一個前提是macro/inline? 05/01 00:44
LPH66:不用, 只要 compiler 認出兩個參數都是常數即可 05/01 02:21
apey:原來如此! 謝謝大家 05/02 22:17