使用 gcc 和 -Wall 选项编译我的项目时,我收到一条警告,提示我的 flex 文件最后一行不存在的语句无效:
警告:
gcc -Wall -O0 -ggdb3 -DNOSUDO -DJOBC -DDEBUG -c lex.yy.c
tokenizer.l: In function ‘yylex’:
tokenizer.l:179: warning: statement with no effect
外壳命令:
$ wc -l tokenizer.l
178 tokenizer.l
lex 文件的最后一部分:
; {
return SEMI;
}
任何人都知道为什么我可能会收到此警告?
如果我禁止所有 #line 指令,则错误是:
lex.yy.c: In function ‘yylex’:
lex.yy.c:1021: warning: statement with no effect
其中指的是 ECHO 行:
case 30:
YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(inQuote):
case YY_STATE_EOF(inWord):
yyterminate();