2011-09-07 598 views

回答

6
  • 1.0/(pow(x,2) + pow(y,2))
  • sqrt(pow(b,2) - 4*a*c)

請參閱pow()sqrt()功能手冊。您也可以寫x*x而不是pow(x, 2)。兩者將具有完全相同的結果和性能(編譯器知道pow函數的功能以及如何對其進行優化)。


(評論者)

GCC輸出完全相同的彙編代碼爲這兩個功能:

double pow2_a(double x) { 
    return pow(x, 2); 
} 

double pow2_b(double x) { 
    return x * X; 
} 

彙編:

fldl 4(%esp) 
    fmul %st(0), %st 
    ret 
+3

使用POW是不必要這裏 –

+0

什麼是不使用它的好處? (因爲它是大多數編譯器的固有編譯器) – arnaud576875

+0

您是否在暗示'pow(x,2.0)'將被優化爲'x * x'? –