2015-04-23 57 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