1. 程式人生 > >別的工程轉到vs2008,發現錯誤:error C2668: “tan”: 對過載函式的呼叫不明確

別的工程轉到vs2008,發現錯誤:error C2668: “tan”: 對過載函式的呼叫不明確

解決方案:
問題出現於tan這個函式又三個不同的過載模式(函式多型性問題) 而tan(alfa*pi/180)*a)這裡會讓編譯器不知道alfa*pi/180)*a這個表示式到底是屬於哪個型別,所以報錯呼叫不明確,主要也是高階的IDE更加嚴格。 而且

float a=0.1; 
編譯器報錯:warning C4305: 'initializing' : truncation from 'const double ' to 'float ' 

原因: 
在C/C++中(也不知道是不是就在VC++中這樣),上述語句等號右邊0.1,我們以為它是個float,但是編譯器卻把它認為是個double(因為小數預設是double),所以要報這個warning,一般改成0.1f就沒事了。

所以,對上面的180後面變成180.0,即是預設全部呼叫double型別就不會出這種錯誤了。