c - 在 flex 中使用 strdup()

标签 c bison flex-lexer strdup

我想将重复的字符串发送到我的 bison 文件。

在我的 flex 文件中我是这样使用的

    "<"     {return strdup(tOPEN);}

    ">"     {return strdup(tCLOSE);}

这是正确的做法吗? 或者我应该像下面的代码那样使用它。

    "<"       { yyval. sval = strdup(yytext); return tOPEN;}

最佳答案

  "<"       { yyval. sval = strdup(yytext); return tOPEN;}

这才是正确的使用方式。

关于c - 在 flex 中使用 strdup(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196841/

相关文章:

c - 在 linux C 中寻找位图实现 API

c - Bison 和 Flex 计算器未正确分配值

c++ - Bison C++ - 减法

bison - 哪里可以找到关于 flex 和 bison 的真实例子?

c - 关于 Flex、Bison 和 Segmentation Fault

c - Bison 总是打印 "syntax error"

给定输入的列宽

c - 使用 calloc 进行赋值

c - 从左到右将2个大数相加

compiler-errors - 编译非常简单的Lex/Yacc文件时出现“something not a structure or union”错误