我似乎无法找出我的代码是用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