我似乎無法找出我的代碼是用C編寫的,我不斷收到各種各樣的錯誤, t錯誤。反正這裏的代碼:使用枚舉類型和typedef數組編譯C代碼的錯誤
int numKeyWords = 6,
idMaxLength = 8,
maxLineLength = 80,
numSymbols = 26;
char blankID[] = " ";
enum symbol{GREATEQ, LESSEQ, EQUAL, NOTEQ, GREAT, LESS, PLUS, MINUS, TIMES, DIVIDE,
LBRACE, RBRACE, LPAREN, RPAREN, LBRACK, RBRACK, SEMICOLON, COMMA,
ASSIGN, WHILE, DO, END, IF, THEN, ELSE, NUMBER, IDENT, BAD};
enum symbol SY;
enum symbol symbols[numKeyWords];
enum symbol specialSymbols[UCHAR_MAX+1];
typedef char alpha[idMaxLength+1];
alpha idname;
char chara;
char line[maxLineLength];
int charCounter;
int lineCounter;
int charLineCounter;
alpha keyWords[numKeyWords];
int isEOF = FALSE;
alpha symbolNames[numSymbols];
我得到的明確這些行錯誤:
...
enum symbol symbols[numKeyWords];
....
typedef char alpha[idMaxLength+1];
...
char line[maxLineLength];
...
alpha keyWords[numKeyWords];
...
alpha symbolNames[numSymbols];
...
說着什麼效果:
錯誤:各種變型「變量」在文件範圍內
這是針對上述每一行。這是爲什麼發生?
即使在C99中,您也不能擁有靜態存儲持續時間的變長數組 - 這是OP的錯誤消息所說的。 – caf 2011-04-01 02:21:10
@caf謝謝。我對C99不夠熟悉,所以我可能應該剛剛在開始時放棄了整個聲明,但我試圖完成。現在編輯。 – jonsca 2011-04-01 02:29:53