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

文件A是主文件,B、C存放主程序相关功能模块,D文件存放的是一些共用的定义及延时等一类通用子函数,A同时包含了B,C和D,但是B和C都同时用到了D里面的函数,编译出现重定义错误。

B、C、D都分别建一个头文件a.h, b.h, c.h,a.h形如:
#ifndef _a_h_
#define _a_h_
……
#endif
这样能够避免重复包含,并且函数原型,结构体定义都写在头文件里面,头文件一定不要写函数主体
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-03
函数重定义。
把D直接写进B和C里,或者直接在A中调用D
第2个回答  2012-04-03
用.c 和 .h一配一的方式。给外部引用的,挂至头文件 中。并
将头文件用下面宏定义括起来

#ifndef __HEADFILENAME_H__
#define __HEADFILENAME_H__

#endif

然后挂头文件 就可以了本回答被提问者采纳
第3个回答  2012-04-04
方法很多啊,在BCD文件的前面加个#pragma once就行,就是只编译一次。要不就像三楼说的用#ifndef和#define
相似回答