c89中的fmax和fmin替代方案

时间:2016-11-22 09:17:56

标签: c visual-studio visual-studio-2010 c99 c89

当尝试使用visual studio 2010编译GLFW时,我收到了错误 “错误LNK2019:未解析的外部符号_fmax在中引用 Error 3 error LNK2019: unresolved external symbol _fmax referenced in function _star F:\Dev\PROGS\GLFW\build\tests\cursor.obj cursor 但是我听说visual studio不支持c99。那么解决方法是什么呢?

1 个答案:

答案 0 :(得分:2)

正如你所说,这些功能是在C99和C ++ 11中添加的。 Microsoft的C编译器不支持C99,但更高版本的C ++编译器 支持C ++ 11。与Visual Studio 2013捆绑在一起的将具有这些功能。我不确定当您编译C代码时它们是否可用。

如果您坚持使用旧版本的编译器,例如VS 2010,那么自己实现这些功能是微不足道的。将它们放在MSVC兼容标头中:

#ifdef _MSC_VER
    #define INLINE __inline

    INLINE double fmax(double left, double right)
    { return (left > right) ? left : right; }

    INLINE double fmin(double left, double right)
    { return (left < right) ? left : right; }
#endif