错误" [错误]表达式列表在初始化程序中被视为复合表达式[-fpermissive]"在递归调用中

时间:2017-11-24 22:38:51

标签: c++

在下面的代码中,在我递归调用函数的所有行中,我收到此错误:

  

[错误]表达式列表在初始化程序[-fpermissive]

中被视为复合表达式

我认为这与我没有放入变量类型有关, 但是当我这样做时,我得到另一个错误声称它期望一个','或者' ...'在' +'前面或' - '。

#include <iostream>
#include <vector>

using namespace std;

int lastmove = 0;

// Returns true if you can reach the bottom-right (otherwise returns false).
// You can move up, down, left, or right.  You cannot move diagonally.
// 1 represents a wall.  You cannot go through a wall.
bool winnable(int maze[5][5], int m, int n) {

    //  Testing moves in right, down, left and up directions
    // If the previous move is the opposite vertically or horizontally
    // It is not valid
    if (n<6&& maze[m][++n]!=1 && lastmove!=3){

        if(m==5&&n==5)
            return true;

        lastmove = 1;
        bool winnable(maze,  m,  ++n);

1 个答案:

答案 0 :(得分:0)

要正确调用winnable()(或任何相关函数),您不应指定其返回类型。

而不是尝试这个:

bool winnable(maze,  m,  ++n);

你应该这样称呼它:

bool result = winnable(maze,  m,  ++n); // store the result of winnable() for later use