我的yacc文件中有这个。
var_declaration : type_specifier ID ';' {$2->args = ""; $2->value = 0; $2->arraysize = 0; $2->type = "variable";}
以上所有事情都有效。
我想将此添加到其中。
fn($2);
从功能内部,我想做这样的事情。
fn(struct symtab sp)
{
sp->value = 0;
}
但是当我尝试编译程序时,我收到了这个错误:
错误:' - >'的无效类型参数 (有'struct symtab')
答案 0 :(得分:6)
我猜你的功能应该是
fn(struct symtab* sp)
而不是
fn(struct symtab sp)
顺便说一句,因为$ 2是联盟我不认为
$2->args = ""; $2->value = 0; $2->arraysize = 0;
是对的。 并且
$2->type = "variable";
无效。