如果我不关心 return 值,我应该用什么 return 类型声明一个函数?
What return type should I declare a function with if I don't care about the return value?
在我的 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;
None 可从头文件中包含。虽然为了调用 yy_scan_string
我必须先声明它。
如果我根本不关心 return 值,并且包含 [=31 的类型定义是不可行的,那么在我的源文件中声明此函数的最佳方式是什么=]类型?
只做它的类型void
例如:
#include <stdio.h>
void helloworld();
void main()
{
helloworld();
}
void helloworld()
{
printf("Hello World");
}
普遍接受的过程是在头文件中定义函数,并将该文件包含在调用它的文件的开头。
如果由于某种原因没有提供头文件,您可以提供。
如果只有少数函数,您可以在 .c 文件中本地声明它们。
函数returns指向结构的指针,因此您可以使用前向声明:
typedef struct yy_buffer_state *YY_BUFFER_STATE;
但是我只能非常强烈地建议您将这些声明删除到他们自己的文件中。
按照您所描述的方式声明它,但将结构定义为不透明类型。只要您不取消引用 return 值(听起来您不会这样做),就可以正常工作。
struct yy_buffer_state;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
YY_BUFFER_STATE yy_scan_string(yyconst char *yystr);
在我的 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;
None 可从头文件中包含。虽然为了调用 yy_scan_string
我必须先声明它。
如果我根本不关心 return 值,并且包含 [=31 的类型定义是不可行的,那么在我的源文件中声明此函数的最佳方式是什么=]类型?
只做它的类型void
例如:
#include <stdio.h>
void helloworld();
void main()
{
helloworld();
}
void helloworld()
{
printf("Hello World");
}
普遍接受的过程是在头文件中定义函数,并将该文件包含在调用它的文件的开头。
如果由于某种原因没有提供头文件,您可以提供。
如果只有少数函数,您可以在 .c 文件中本地声明它们。
函数returns指向结构的指针,因此您可以使用前向声明:
typedef struct yy_buffer_state *YY_BUFFER_STATE;
但是我只能非常强烈地建议您将这些声明删除到他们自己的文件中。
按照您所描述的方式声明它,但将结构定义为不透明类型。只要您不取消引用 return 值(听起来您不会这样做),就可以正常工作。
struct yy_buffer_state;
typedef struct yy_buffer_state *YY_BUFFER_STATE;
YY_BUFFER_STATE yy_scan_string(yyconst char *yystr);