[爆卦]Cmath是什麼?優點缺點精華區懶人包

為什麼這篇Cmath鄉民發文收入到精華區:因為在Cmath這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Jeanime (偷偷)看板C_and_CPP標題[問題] math.h vs cmath時間M...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)

linux

額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)

<math.h>,<cmath>

問題(Question):

我以前對cmath的認知是它是包含math.h且更powerful的header

但像pow(int a,int b)若是include<math.h> compiled會過

反而include<cmath>就會有error

後來修正為pow(double a,int b) or pow(int a,double b)則compiled OK

雖然能用但是不太懂為什麼的感覺不是很好

有人能稍微講解一下這兩種使用上的比較和觀念嗎?

謝謝!!

--
purincess:因為pow(int, int)會不知道要轉成pow(double, double) 12/10 18:14
purincess:還是pow(float, float)吧 因為C++的pow有function over 12/10 18:15
purincess:loading, 在C的時候用float的pow要call powf 12/10 18:15
MOONRAKER:有這種事嗎?你是不是跟modf()搞混了? 12/10 18:17
purincess:另外應該也還有long double的powl~~ 12/10 18:18
EdisonX:1F 說反了,math.h 裡傳入 pow(int,int),會將兩個引數轉成 12/10 18:19
EdisonX:double,即使 pow(int,double)/pow(double,int)在c也行. 12/10 18:20
EdisonX:唯c++,cmath多載了三份,所以 pow(int,double)會不知用哪份 12/10 18:20
EdisonX:更正最後一句,pow(int,double) 會呼叫 pow(double,double) 12/10 18:22
uranusjr:http://goo.gl/WvgZy pow(double,int) 有 direct match, 12/10 18:48
uranusjr:pow(int,double) 會用 pow(double,double)(唯一符合) 12/10 18:49
uranusjr:pow(int,int) 會卡在第一個要 double 還是 long double 12/10 18:49
purincess:我1F是說在C++裡面阿 XD 12/10 19:27
EdisonX:原來如此,是我意會錯了. 12/10 20:38
看了連結和說明後明瞭多了
感謝各位大大解答~~
※ 編輯: Jeanime 來自: 140.112.41.30 (12/10 21:50)

你可能也想看看

搜尋相關網站