编译*.y会报出*yacc.cpp文件: warning:deprecated conversion from string constant to char*
1. yyerror(YY_("syntax error"));
查找原因,是因为void yyerror(char* msg)函数参数的问题,"msg"这样的const string是存储在const内存区里的,不允许修改,而我们用char *类型的指针指向了它,这样的修改会使程序出错;
解决方法:将函数参数类型改为const char*即可。
2. static char* ignore = "null";
查找原因,因为“null"作为字符常量不能分配给指针变量ignore。
解决方法:改为static char ignore[] = "null"; 将指针改为一个字符数组