我正在使用Bison创建一个简单的解析器,并且在理解下面的C代码时遇到了一些麻烦。对我来说,它看起来不像是一条有效的语句,但是gcc巧妙地对其进行了编译,并且该块中的代码在解析错误时执行。
我真的很想知道这实际上意味着什么。
我引用的代码来自http://dinosaur.compilertools.net/bison/bison_7.html#SEC66:
yyerror (s)
char *s;
{
// Some code here
}
最佳答案
那是K&R C
在现代C语言(C89/90或C99)中,它将是:
int yyerror(char *s)
{
}
关于c - Bison中奇怪的C代码(yyerror),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8402039/