实现同样目标的最佳方式是什么?
void foo(double floatValue, char* stringResult)
{
sprintf(stringResult, "%f", floatValue);
}
Run Code Online (Sandbox Code Playgroud) Yacc 不允许传递对象。由于 %union 只能包含 POD 类型,因此必须新建复杂对象并通过指针传递。如果发生语法错误,yacc 解析器就会停止运行,并且对所有这些创建的对象的引用都会丢失。
我提出的唯一解决方案是所有新对象都继承特定的基类,在分配时添加到容器中,如果出现错误,则可以删除该容器中的所有内容。
有谁知道有更好的 yacc 技巧来解决这个问题吗?
请不要告诉我选择不同的解析器。