在我的 C 文件中,我正在调用一个在生成的文件 lex.yy.c 中定义的函数:

yy_scan_string(input);

lex.yy.c 中声明如下:
YY_BUFFER_STATE yy_scan_string(yyconst char *yystr);

反过来 YY_BUFFER_STATE 是一个 typedef :
typedef struct yy_buffer_state *YY_BUFFER_STATE;

这些都不能从头文件中包含。虽然为了调用 yy_scan_string 我必须先声明它。

当我根本不关心返回值并且包含返回类型的类型定义是不可行的时,在我的源文件中声明此函数的最佳方法是什么?

最佳答案

普遍接受的过程是在头文件中定义函数,并将该文件包含在您从中调用它的文件的开头。

如果由于某种原因没有提供头文件,你会制作它。

如果只有少数函数,您可以在 .c 文件中本地声明它们。

该函数返回一个指向结构的指针,因此您可以使用前向声明:

typedef struct yy_buffer_state *YY_BUFFER_STATE;

但是,我只能强烈建议您将这些声明删除到它们自己的文件中。

关于c - 如果我不关心返回值,我应该用什么返回类型声明一个函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31382444/

10-12 00:06
查看更多