在我的头文件中有这个简单的结构
struct cont
{
char fname[10];
char lname[10];
char user[10];
char pass[10];
float price;
}s;
我在头文件中有关于struct cont s
声明的链接错误。
顺便说一下,我有多个文件(.C)包含函数和主要文件。文件无法找到结构。这是宣布全球结构的正确方法吗?所以我可以将它用于我的所有文件。
答案 0 :(得分:4)
最好的方法是
extern
变量。.c
个文件中定义变量。答案 1 :(得分:1)
您可以考虑几个选项,例如,您可以在头文件中声明这个选项
struct cont
{
char fname[10];
char lname[10];
char user[10];
char pass[10];
float price;
};
然后在每个需要使用struct的.c文件中包含头文件,并将结构的实例声明为struct cont instanceOfCont;
#include "headerfile.h"
struct cont instanceOfCont;
你可以编写函数来改变结构的成员,然后将结构的定义放在实现这些函数的文件中,比如cont.c
struct cont
{
char fname[10];
char lname[10];
char user[10];
char pass[10];
float price;
};
const char *contGetFirstName(struct cont *instance)
{
if (instance == NULL)
return NULL;
return instance->fname;
}
.
.
.
/ *依此类推* /
然后在另一个c文件中声明struct的实例,使用像
这样的指针struct cont *instance;
最后你可以typedef
结构太像
typedef struct cont Cont;
然后使用Cont
代替struct cont
来声明它的实例。