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重复定义,我该怎么办,请大侠指教。
展开
 我来答
风若远去何人留
推荐于2018-02-28 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20413 获赞数:450065
专业C/C++软件开发

向TA提问 私信TA
展开全部
引用结构体有引用类型,和引用全局变量两种方式。

1 引用类型。
需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。

2 引用全局变量。
要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。
比如结构体为struct test, 定义全局变量为
struct test glabol_test;
在其它文件中,只需要
extern struct test globol_test;
即可在对应文件声明所在行之下进行调用。

PS:该声明部分,也可以写在定义结构体的头文件中。
glorey
推荐于2017-12-16
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
在包含结构体的文件开始加一行
#pragma once
这样只编译一次
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2018-02-28 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2506万
展开全部
把结构体定义在一个公共头文件里 然后都包含这个头文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友57cd287e5
2007-05-15 · TA获得超过277个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:158万
展开全部
//file2.c
#include "file1.h"
#include "file3.c"
st gg;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
edwards1101
2007-05-15 · 超过30用户采纳过TA的回答
知道答主
回答量:124
采纳率:0%
帮助的人:40万
展开全部
#ifndef
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式