Struct C类型定义结构重新定义,不同的基本类型
第一次在这里发布。我无法从单独的文件中引用typedef结构。例如: main.c//菜单和变量声明Struct C类型定义结构重新定义,不同的基本类型,struct,reference,typedef,Struct,Reference,Typedef,第一次在这里发布。我无法从单独的文件中引用typedef结构。例如: main.c//菜单和变量声明 #include <stdio.h> #include <string.h> #include "person.h" #include "person.c" person persondata[50] ; person.c//函数 extern persondata[]; void copy() { strcpy(persondata[0].name, "
#include <stdio.h>
#include <string.h>
#include "person.h"
#include "person.c"
person persondata[50] ;
person.c//函数
extern persondata[];
void copy()
{
strcpy(persondata[0].name, "John");
}
我不断得到错误:“.name”的左边必须有结构/联合类型和重新定义,不同的基本类型
我应该如何修复此引用?
extern persondata[]
隐式等同于extern int persondata[]代码>(如果未指定类型,编译器将假定int
)。您需要外部人员persondata[]代码>
此外,编译器需要能够在person.c中查看person
的定义,因此在文件顶部添加#包括“person.h”
。extern persondata[]
隐式等同于extern int persondata[]代码>(如果未指定类型,编译器将假定int
)。您需要外部人员persondata[]代码>
此外,编译器需要能够在person.c中查看person
的定义,因此在文件顶部添加#包括“person.h”
。Write
extern person persondata[];
相反。
这应该能奏效
如果您没有给它正确的类型,编译器就不会知道persondata是一个person数组。Write
extern person persondata[];
相反。
这应该能奏效
如果您没有为其提供正确的类型,编译器将不会知道persondata是一个person数组。通常您将#包括“person.h”
,以便使person
的声明可见,然后您将persondata声明更改为:
extern person persondata[];
。。。i、 e.指定其类型。通常您将#包括“person.h”
,以使person的声明可见,然后您将persondata声明更改为:
extern person persondata[];
。。。i、 e.指定其类型。您需要:
#include "person.h"
person persondata[10];
你需要:
#include "person.h"
person persondata[10];
这些都是密码吗?你是否在person.c文件中包含“person.h”这就是全部代码?您是否在person.c文件中包含“person.h”您不需要使用“struct”谢谢,我只是注意到了这一点。相应地编辑。你不需要使用“struct”谢谢,只是注意到我自己。相应地编辑。person.h没有persondata
的声明,因此应该更正而不是删除外部行(或者应该将声明添加到person.h)。person.h没有persondata
的声明,因此应该更正而不是删除外部行(或该声明应添加到person.h中)。