首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中头文件的有关问题

2012-03-22 
C语言中头文件的问题各位大侠:小弟新手,问的不对的地方多多指教。小弟有一个头文件Fet_Card.h,里面定义了一

C语言中头文件的问题
各位大侠:
  小弟新手,问的不对的地方多多指教。
  小弟有一个头文件Fet_Card.h,里面定义了一些公用的变量,现在我在两个.c(main.c和Fet_Card.c)文件中都要用到,于是就在两个文件中都使用了#include "Fet_Card.h",结果就出现了编译问题,我知道是两个文件都使用#include "Fet_Card.h"的原因,但是不知道怎么解决,请各位大侠帮忙啊!

[解决办法]
在头文件时最好只声明外部变量

head1.h

#ifndef __HEAD1_H__
#define __HEAD1_H__

extern int myvar;
#endif

head2.h
#ifndef __HEAD2_H__
#define __HEAD2_H__

extern ....
#endif


myfun.cpp

#include "head1.h"
#include "head2.h"

现在head1.h,head2.h就在多个文件中重复引用了。

[解决办法]

C/C++ code
#ifndef __Fet_Card_H#define __Fet_Card_H//Fet_Card.h的内容//..........#endif//作上面那样的处理吧。
[解决办法]
解决方法是把变量定义在其中一个cpp文件里面,
然后在另一个文件里面用extern来引用。
sample:

文件一:
int a;

文件二:
extern int a;

[解决办法]
你可以理解为头文件的包含实际上就是在cpp文件编译的时候,添上所有头文件的内容在进行编译。
所以如果你在头文件中定义了变量,那么相当于,在所有包含这个头文件的cpp文件里,都定义了一次这个变量,所以链接的时候会出问题,解决方法如 风(coldwindtang) 所说。

热点排行