函数在C中的LValue返回未指定



我正在尝试组织一个C程序,然后生成一个lex文件。但是代码中还有最后一个我不明白的错误

我从来没有用过C。

错误代码的第一部分:

/* addChar - a function to add nextChar to lexeme */
void  addChar() {
if  (lexLen <= 98) {
lexeme[lexLen++] = nextChar;
lexeme[lexLen] = 0;
}
else
printf("Error - lexeme is too long n");
}
/* getChar - a function to get the next character of 
input and determine its character class */
void getChar() {
if  ((nextChar = getc(in_fp)) = EOF) {
if  (isalpha(nextChar))
charClass = LETTER;
else if  (isdigit(nextChar))
charClass = DIGIT;
else  charClass = UNKNOWN;
}
else
charClass = EOF;
}

错误是:

program.c: In function ‘getChar’:
program.c:96:34: error: lvalue required as left operand of assignment
if  ((nextChar = getc(in_fp)) = EOF) {```

This:

if  ((nextChar = getc(in_fp)) = EOF) {

应该

if  ((nextChar = getc(in_fp)) == EOF) {
^^

这将表达式从赋值变为求值,从而不需要lvalue

最新更新