使用头文件修复GCC中的编译器错误

Mac*_*lty 0 c pointers header-files

我在课堂上收到的关于创建头文件的解释有点不清楚.我的教授说创建一个头文件,你想要包含函数原型.我一直在使用包含指针标记的函数原型出错.我的头文件:

#ifndef A3_H
#define A3_H

void list_init(record_list*);
void list_destroy(record_list*);
int  list_insert(record_list*, const record*);
int input_record(record*);

#endif
Run Code Online (Sandbox Code Playgroud)

而我收到的错误是:

$ gcc -ansi -W -Wall -pedantic -c a3.c
In file included from a3.c:4:0:
a3.h:4:27: error: expected ‘)’ before ‘*’ token
a3.h:5:30: error: expected ‘)’ before ‘*’ token
a3.h:6:29: error: expected ‘)’ before ‘*’ token
a3.h:7:24: error: expected ‘)’ before ‘*’ token
Run Code Online (Sandbox Code Playgroud)

我不能在头文件中包含函数原型中的指针吗?

And*_*ter 5

是的,你可以在头文件中有指针,但看起来你没有定义recordrecord_list在任何地方.

  • 别客气.正确维护头文件在C项目中非常重要.您需要确保每个头文件都是自包含的,并且不依赖于之前包含的其他头文件.如果你需要包含一个给定的`.h`文件,比如像你的情况那样引入`struct`定义,那么你的头文件应该明确地包含它. (2认同)