2015-04-23 110 views

回答

1

這是因爲min已經被定義爲宏通過標準的Windows標題:

#define min(a,b)   (((a) < (b)) ? (a) : (b)) 

取代min通過mymin它將編譯罰款或寫:

#undef min 
inline double min (double a, double b) { return a < b ? a : b; } 
1

的Visual C++不支持inline關鍵字,所以只需刪除它,它應該工作。或者您可以使用__inline,但這不是標準。

+1

這是部分正確的。 VC++不支持C的'inline'。我知道這個問題被標記爲'C',然而,人們可能會閱讀你的答案,並且認爲Visual Studio中的C++編譯器不支持這個關鍵字。所以我想作出澄清。有關參考,請參閱https://msdn.microsoft.com/en-us/library/z8y1yy88.aspx。 –

+0

從來沒有嘗試過使用MS C編譯器的'inline'。誰知道? (詭計的問題;顯然*你*和馬呂斯做的)。如果'windows.h'嗤嗤我*認爲*你仍然必須#define NOMINMAX([ala這個問題](https://stackoverflow.com/questions/14165/strange-c-errors-with-code-that-有最小最大呼叫))如果你這樣做。我沒有一個方便的winbox,所以我無法驗證。 – WhozCraig