C++ 预处理器g++;明治
我有密码:C++ 预处理器g++;明治,c++,g++,c-preprocessor,preprocessor,C++,G++,C Preprocessor,Preprocessor,我有密码: #if _MSC_VER <= 1300 float round(float f) { if (f < 0) return ceilf (f - 0.5); else return floorf (f + 0.5); } #endif #如果未定义\u MSC\u VER如果未定义\u MSC\u VER,则编译器将不会看到来自和包括\if到和
#if _MSC_VER <= 1300
float round(float f)
{
if (f < 0)
return ceilf (f - 0.5);
else
return floorf (f + 0.5);
}
#endif
#如果未定义\u MSC\u VER如果未定义\u MSC\u VER
,则编译器将不会看到来自和包括\if
到和包括\endif
的任何代码
根据上下文,编译器将看到有效的源代码,并成功编译。请放心,您的round
版本不会构成已编译程序的一部分,尽管std::round
可能已隐式包含在某个地方
最后,使用加法常数0.5
来设计舍入
函数也有缺陷。请参见如果未定义\u MSC\u VER
,则编译器将不会看到\If
到\endif
并包括\endif>的任何代码
根据上下文,编译器将看到有效的源代码,并成功编译。请放心,您的round
版本不会构成已编译程序的一部分,尽管std::round
可能已隐式包含在某个地方
最后,使用加法常数0.5
来设计舍入
函数也有缺陷。请参阅,在G++<代码>中,MSCsFiver 未定义,正如您所注意到的,它是VisualC++特定的。
您可以尝试添加以下内容:
#ifdef _MSC_VER
#if _MSC_VER <= 1300
// Your code
#endif
#endif
\ifdef\u MSC\u VER
如果你没有定义,G++<代码> MSCsFiver 没有定义,正如你注意到的,它是VisualC++特定的。
您可以尝试添加以下内容:
#ifdef _MSC_VER
#if _MSC_VER <= 1300
// Your code
#endif
#endif
\ifdef\u MSC\u VER
#非常感谢你的链接。非常感谢你的链接。