2011-09-07 604 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'? –