请问如何在VC中避免多次重复包含一个头文件???急

时间:2021-01-18 16:48:52
最好对原理和使用方法能有一个比较简单的解释!!!谢谢诸位了!

13 个解决方案

#1


//example:
#ifndef _DLL_VERSION_H_
#define _DLL_VERSION_H_

#2


#ifndef _YOUHEADER_H_
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.

#3


在每个.h里加上条件编译的开关,如,yourfile.h可以这样:
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_

// .h文件内容

// .h文件末尾:
#endif

#4


#if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //

#5


#inndef
#define
#endif

#6


在.h文件中加入:
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer

#7


VC中??
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊

#8


前面的同志说的不错,还有两条规则如果你遵守的话,就不会出这样的问题了
1 一般不要在头文件里再包含别的头文件,只写在C|Cpp里
2 头文件里的变量只能是declare,也就是说加个extern前面

再就应该可以了

#9


if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //

这是C++的语法;

// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_

// .h文件内容

// .h文件末尾:
#endif
是兼容C的语法。

#10


多回答得很好了

#11


经常用到的,写在stdafx.h里不就行了?

#12


houstond(东方浩气)说得不错。

#13


houstond(东方浩气)说得不错。

#1


//example:
#ifndef _DLL_VERSION_H_
#define _DLL_VERSION_H_

#2


#ifndef _YOUHEADER_H_
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.

#3


在每个.h里加上条件编译的开关,如,yourfile.h可以这样:
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_

// .h文件内容

// .h文件末尾:
#endif

#4


#if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //

#5


#inndef
#define
#endif

#6


在.h文件中加入:
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer

#7


VC中??
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊

#8


前面的同志说的不错,还有两条规则如果你遵守的话,就不会出这样的问题了
1 一般不要在头文件里再包含别的头文件,只写在C|Cpp里
2 头文件里的变量只能是declare,也就是说加个extern前面

再就应该可以了

#9


if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //

这是C++的语法;

// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_

// .h文件内容

// .h文件末尾:
#endif
是兼容C的语法。

#10


多回答得很好了

#11


经常用到的,写在stdafx.h里不就行了?

#12


houstond(东方浩气)说得不错。

#13


houstond(东方浩气)说得不错。