2014-08-27 64 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