c - 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) {```
解决方案
这个:
if ((nextChar = getc(in_fp)) = EOF) {
应该
if ((nextChar = getc(in_fp)) == EOF) {
^^
这将表达式从赋值更改为评估,从而消除了对lvalue
推荐阅读
- java - 如何以编程方式滚动到 Java 桌面应用程序部分的特定部分
- android - 以编程方式转换 .jks 文件
- php - 将所有重复出现的字符串替换为单个相同的字符串
- php - 如果 php fileinfo 扩展名不被允许并且不能在共享服务器上允许,则 laravel 文件上传
- node.js - npm audit 仅适用于生产依赖项?
- linux - 解析命令的输出
- python - 读取、编辑和写入文本文件中的每 4 行
- php - Can not install ext-msgpack extension on mac os
- php - How do I get CSS to display on my pages?
- python - 单元测试不起作用,因为导入的文件作为输入