2014-08-27 61 views
0

我在MATLAB中创建了一个mex文件,该文件是用VS编写的.cpp文件。我在MATLAB中收到此错误:error C3861:' fmax':标识符未找到。 我用max代替fmax,一切正常。我包含在我的.cpp文件中。 前一段时间,我已经完成了与另一个没有错误的代码完全相同! 如何解决这个问题?当在MATLAB中创建mex时:错误C3861:'fmax':标识符未找到

有没有人知道std :: max与max的“windows.h”不同?

+0

可能是VS VS 2010? – 4pie0 2014-08-27 22:14:25

+0

是的。它是。我使用这台同样的计算机创建了这个完全与我现在使用的VS.但是,嗯... MATLAB是一个不同的版本。 “max”的行为与浮点上的“fmax”完全相同吗?我不想失去精确度。 – Elnaz 2014-08-27 22:16:07

回答

0

fminfmax是一个C99功能。 Microsoft不完全支持C99标准。您可以使用std::maxstd::min从标准算法库代替,毕竟您编写C++程序。

#include <algorithm> 
+0

它是std :: max(x,y)?我收到了一个错误。 – Elnaz 2014-08-27 22:25:44

+0

谢谢。有用。与fmax相比,任何精度/准确度都会丢失?它与windows.h中的“max”有什么不同? – Elnaz 2014-08-27 22:28:55

+0

不应该有任何丢失的精度,但请联系您的编译器,先生。 – 4pie0 2014-08-27 22:30:13