2012-10-31 41 views
-1

這是我的代碼,它有語法錯誤。聲明結構時出現語法錯誤

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

此代碼,這對我來說很好返回我就行了「細胞」這個錯誤:

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

可以任你指出我的錯誤?

+0

爲了保持一致性,prevx和prevy的聲明不應該放在分隔的分號上嗎? –

回答

1

你能做到這一點也被保留用於宏。

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

申報結構的正確方法是:

struct cell MAZE[xsize][ysize]; 

你也可以這樣做:

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

cell MAZE[xsize][ysize]; 
2

在C,你必須寫:

struct cell MAZE[xsize][ysize]; 

在C++ ,有一個'自動typedef',但不在C.

你也可以寫:

typedef struct cell cell; 

然後你的聲明(不是初始化)將是正確的。

通常情況下,全部大寫的名字,如迷宮C.