返回的数据类型是啥/
时间: 2023-12-06 17:05:31 浏览: 44
Flex中yylex函数的返回类型是int。yylex函数返回值的意义由Flex源代码中的%type声明来规定。在%type声明中,你可以指定不同标记的返回类型,例如:
```
%type <num> INTEGER
%type <str> STRING
```
这里,INTEGER标记将返回一个int类型的值,而STRING标记将返回一个char*类型的指针。在yylex函数中,你可以使用YYSTYPE宏来引用不同标记的返回值,例如:
```
%union {
int num;
char* str;
}
%token <num> INTEGER
%token <str> STRING
%%
integer: INTEGER { printf("%d\n", yylval.num); }
string: STRING { printf("%s\n", yylval.str); }
%%
int yylex() {
// ...
switch(token) {
case INTEGER:
yylval.num = atoi(yytext);
return INTEGER;
case STRING:
yylval.str = strdup(yytext);
return STRING;
// ...
}
}
```
在上面的示例中,我们使用%union声明了一个联合体,它包含了int类型的num成员和char*类型的str成员。我们还使用%token声明了INTEGER和STRING标记,并在yylex函数中使用yylval来引用不同标记的返回值。在integer和string规则中,我们分别打印出了INTEGER和STRING标记的返回值。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)