c89中的fmax和fmin替代方案

c89中的fmax和fmin替代方案,c,visual-studio,visual-studio-2010,c99,c89,C,Visual Studio,Visual Studio 2010,C99,C89,当尝试使用VisualStudio2010编译GLFW时,我得到了一个错误 “错误LNK2019:中引用了未解析的外部符号_fmax” 错误3错误LNK2019:函数_starF:\Dev\PROGS\GLFW\build\tests\cursor.obj cursor中引用的未解析外部符号_fmax 但是,正如我听说Visual Studio不支持C99。那么,什么是解决这个问题?< P>正如你所说的,这些函数在C99和C++ 11中被添加。微软的C编译器不支持C99,但是C++编译器的后来

当尝试使用VisualStudio2010编译GLFW时,我得到了一个错误 “错误LNK2019:中引用了未解析的外部符号_fmax”
错误3错误LNK2019:函数_starF:\Dev\PROGS\GLFW\build\tests\cursor.obj cursor中引用的未解析外部符号_fmax

但是,正如我听说Visual Studio不支持C99。那么,什么是解决这个问题?

< P>正如你所说的,这些函数在C99和C++ 11中被添加。微软的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
\ifdef\u MSC\u VER
#定义内联\uuu内联
内联双fmax(左双,右双)
{返回(左>右)?左:右;}
内联双fmin(左双,右双)
{返回(左<右)?左:右;}
#恩迪夫