我的main
中有一个结构,让我们说:
struct node
{
char name[N];
int num;
char **group;
int groupsize;
struct node * next;
};
并且我对其他.c和.h文件有自己的功能,称为myfuncs.c.h
myfuncs.h
void create_node(struct node **, struct node **, int, int, char **, int);
void display(struct node *head);
void start_joseph(struct node **, int, int);
和myfuncs.c
void create_node(struct node **, struct node **, int, int, char **, int);
{
do something;
}
void display(struct node *head);
{
do something;
}
void start_joseph(struct node **, int, int);
{
do something;
}
但我收到此错误
[Warning] 'struct node' declared inside parameter list
[Warning] its scope is only this definition or declaration, which is probably not what you want
我应该将结构定义为预处理器还是什么?
将结构定义放在使用它的函数声明之前的标题中。
至少需要一行:
struct node;
在函数声明之前的标头中。由于您似乎并没有尝试创建不透明类型(使用代码将其细节从代码中隐藏),因此嵌入整个结构定义是合理的。请注意,然后从包含main()
函数的代码中删除该定义。