关于C语言里面一个因函数重复包含而产生的重定义问题。。请高手解决

文件A是主文件,B、C存放主程序相关功能模块,D文件存放的是一些共用的定义及延时等一类通用子函数,A同时包含了B,C和D,但是B和C都同时用到了D里面的函数,编译出现重定... 文件A是主文件,B、C存放主程序相关功能模块,D文件存放的是一些共用的定义及延时等一类通用子函数,A同时包含了B,C和D,但是B和C都同时用到了D里面的函数,编译出现重定义错误。 展开
 我来答
tidecao2006
2012-04-03 · TA获得超过1228个赞
知道小有建树答主
回答量:842
采纳率:0%
帮助的人:788万
展开全部
B、C、D都分别建一个头文件a.h, b.h, c.h,a.h形如:
#ifndef _a_h_
#define _a_h_
……
#endif
这样能够避免重复包含,并且函数原型,结构体定义都写在头文件里面,头文件一定不要写函数主体
BYHGZ
2012-04-03 · TA获得超过227个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:113万
展开全部
函数重定义。
把D直接写进B和C里,或者直接在A中调用D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天使杀猪
2012-04-03
知道答主
回答量:18
采纳率:0%
帮助的人:5.7万
展开全部
用.c 和 .h一配一的方式。给外部引用的,挂至头文件 中。并
将头文件用下面宏定义括起来

#ifndef __HEADFILENAME_H__
#define __HEADFILENAME_H__

#endif

然后挂头文件 就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Meo_meo
2012-04-04 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:39.4万
展开全部
方法很多啊,在BCD文件的前面加个#pragma once就行,就是只编译一次。要不就像三楼说的用#ifndef和#define
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式