我从main拆分功能时遇到结构问题

问题描述 投票:0回答:1

我的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

我应该将结构定义为预处理器还是什么?

c struct
1个回答
1
投票

将结构定义放在使用它的函数声明之前的标题中。

至少需要一行:

struct node;

在函数声明之前的标头中。由于您似乎并没有尝试创建不透明类型(使用代码将其细节从代码中隐藏),因此嵌入整个结构定义是合理的。请注意,然后从包含main()函数的代码中删除该定义。

© www.soinside.com 2019 - 2024. All rights reserved.