C语言中如何在多个文件中引用同一个结构体
有3个文件:file1.h,file2.c,file3.c。//file1.hstructst{doubleu,v;};//file2.c#include"file1.h...
有3个文件:file1.h,file2.c,file3.c。
//file1.h
struct st
{
double u,v;
};
//file2.c
#include "file1.h"
#include "file3.c"
struct st gg;
....
//file3.c
extern struct st gg;
gg.u=3;
上面就是我的程序,报错说gg结构没有定义,可是如果我在file3.c里面#include "file1.h"又说st重复定义,我该怎么办,请大侠指教。 展开
//file1.h
struct st
{
double u,v;
};
//file2.c
#include "file1.h"
#include "file3.c"
struct st gg;
....
//file3.c
extern struct st gg;
gg.u=3;
上面就是我的程序,报错说gg结构没有定义,可是如果我在file3.c里面#include "file1.h"又说st重复定义,我该怎么办,请大侠指教。 展开
展开全部
引用结构体有引用类型,和引用全局变量两种方式。
1 引用类型。
需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。
2 引用全局变量。
要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。
比如结构体为struct test, 定义全局变量为
struct test glabol_test;
在其它文件中,只需要
extern struct test globol_test;
即可在对应文件声明所在行之下进行调用。
PS:该声明部分,也可以写在定义结构体的头文件中。
1 引用类型。
需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。
2 引用全局变量。
要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。
比如结构体为struct test, 定义全局变量为
struct test glabol_test;
在其它文件中,只需要
extern struct test globol_test;
即可在对应文件声明所在行之下进行调用。
PS:该声明部分,也可以写在定义结构体的头文件中。
展开全部
在包含结构体的文件开始加一行
#pragma once
这样只编译一次
#pragma once
这样只编译一次
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把结构体定义在一个公共头文件里 然后都包含这个头文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//file2.c
#include "file1.h"
#include "file3.c"
st gg;
#include "file1.h"
#include "file3.c"
st gg;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#ifndef
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询