-1

这是我的代码有语法错误。

struct cell{
        bool in;
        bool up;
        bool left;
        int prevx, prevy;
};
cell MAZE[xsize][ysize];

这段对我来说看起来不错的代码在“单元格”行返回了这个错误:

error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before 'MAZE'

你们中的任何人都可以指出我的错误吗?

4

3 回答 3

10

声明结构的正确方法是:

struct cell MAZE[xsize][ysize];

你也可以这样做:

typedef struct {
    bool in;
    bool up;
    bool left;
    int prevx, prevy;
} cell;

cell MAZE[xsize][ysize];
于 2012-10-31T17:44:02.833 回答
2

在 C 中,您必须编写:

struct cell MAZE[xsize][ysize];

在 C++ 中,有一个“自动 typedef”,但在 C 中没有。

你也可以写:

typedef struct cell cell;

那么您的声明(不是初始化)将是正确的。

通常,像 MAZE 这样的全大写名称是为 C 中的宏保留的。

于 2012-10-31T17:44:31.127 回答
1

你也可以这样做。

struct cell{
        bool in;
        bool up;
        bool left;
        int prevx, prevy;
}MAZE[xsize][ysize];
于 2012-10-31T17:51:10.043 回答