关键词: not all control paths return a value
谷歌翻译:并非所有控制路径都返回值
大意就是没有给所有路径都设置返回值
错误截图如下:
举例代码:
int max3(int x, int y, int z)
{
if (x < z && y < z)
{
return z;
}
if (x < y && z < y)
{
return y;
}
if (y < x && z < x)
{
return x;
}
}
main.c:31:1: error: non-void function does not return a value in all
control paths [-Werror,-Wreturn-type]
只需在if判断外加return 0;
解决修改后:
int max3(int x, int y, int z)
{
if (x < z && y < z)
{
return z;
}
if (x < y && z < y)
{
return y;
}
if (y < x && z < x)
{
return x;
}
return 0;
}
就会正常运行了。