编译器警告(等级 1)C4715
“function”:不是所有的控件路径都返回值
指定的函数可能无法返回值。
示例
// C4715a.cpp
// compile with: /W1 /LD
int func1( int i )
{
if( i )
return 3; // C4715 warning, nothing returned if i == 0
}
若要防止此警告,请修改代码,以便所有路径将返回值分配给函数:
// C4715b.cpp
// compile with: /LD
int func1( int i )
{
if( i ) return 3;
else return 0; // OK, always returns a value
}
代码可能包含对永不返回的函数的调用,如以下示例所示:
// C4715c.cpp
// compile with: /W1 /LD
void fatal()
{
}
int glue()
{
if(0)
return 1;
else if(0)
return 0;
else
fatal(); // C4715
}
此代码还会生成警告,因为编译器不知道 fatal
永远不会返回。 若要防止此代码生成错误消息,请使用 __declspec(noreturn) 声明 fatal
。