警告:控件可能到达非空函数的结尾 [-Wreturn-type] }
warning: control may reach end of non-void function [-Wreturn-type] }
我是 c++ 的初学者,我正在尝试制作国际象棋游戏,当我编译时:
bool isValidMove(int inCol, int inRow, int outCol, int outRow, char board[8][8])
{
if (board[inRow][inCol] == '-')
return false;
else
{
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board))
return true;
if((board[inRow][inCol] == 'K' || board[inRow][inCol] == 'k') && isValidMoveKnight(inCol, inRow, outCol, outRow, board))
return true;
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board))
return true;
}
}
我从我的编译器那里得到这个警告 warning: control may reach end of non-void function [-Wreturn-type] }
任何人都可以按照我在 mac.
上的方式帮助我解决这个问题
在您的 else
块中,有一条路径不会返回任何内容。这就是你被警告的内容。
如果不符合您的条件,您最终不会return任何事情。
bool isValidMove(int inCol, int inRow, int outCol, int outRow, char board[8][8]) {
if(board[inRow][inCol] == '-') {
return false;
}
else {
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board)) {
return true;
}
if((board[inRow][inCol] == 'K' || board[inRow][inCol] == 'k') && isValidMoveKnight(inCol, inRow, outCol, outRow, board)) {
return true;
}
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r')&& isValidMoveRook(inCol, inRow, outCol, outRow, board)) {
return true;
}
}
// return something here
}
我是 c++ 的初学者,我正在尝试制作国际象棋游戏,当我编译时:
bool isValidMove(int inCol, int inRow, int outCol, int outRow, char board[8][8])
{
if (board[inRow][inCol] == '-')
return false;
else
{
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board))
return true;
if((board[inRow][inCol] == 'K' || board[inRow][inCol] == 'k') && isValidMoveKnight(inCol, inRow, outCol, outRow, board))
return true;
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board))
return true;
}
}
我从我的编译器那里得到这个警告 warning: control may reach end of non-void function [-Wreturn-type] }
任何人都可以按照我在 mac.
在您的 else
块中,有一条路径不会返回任何内容。这就是你被警告的内容。
如果不符合您的条件,您最终不会return任何事情。
bool isValidMove(int inCol, int inRow, int outCol, int outRow, char board[8][8]) {
if(board[inRow][inCol] == '-') {
return false;
}
else {
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r') && isValidMoveRook(inCol, inRow, outCol, outRow, board)) {
return true;
}
if((board[inRow][inCol] == 'K' || board[inRow][inCol] == 'k') && isValidMoveKnight(inCol, inRow, outCol, outRow, board)) {
return true;
}
if((board[inRow][inCol] == 'R' || board[inRow][inCol] == 'r')&& isValidMoveRook(inCol, inRow, outCol, outRow, board)) {
return true;
}
}
// return something here
}