声明结构时出现语法错误

时间:2012-10-31 17:41:30

标签: c

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

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

这段代码看起来不错,让我回到“单元格”这一错误:

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

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

3 个答案:

答案 0 :(得分:10)

声明结构的正确方法是:

struct cell MAZE[xsize][ysize];

你也可以这样做:

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

cell MAZE[xsize][ysize];

答案 1 :(得分:2)

在C中,你必须写:

struct cell MAZE[xsize][ysize];

在C ++中,有一个'自动typedef',但不在C中。

你也可以写:

typedef struct cell cell;

然后你的声明(不是初始化)是正确的。

通常,所有大写字母名称(如MAZE)都保留给C中的宏。

答案 2 :(得分:1)

你也可以这样做。

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