13 个解决方案
#1
//example:
#ifndef _DLL_VERSION_H_
#define _DLL_VERSION_H_
#ifndef _DLL_VERSION_H_
#define _DLL_VERSION_H_
#2
#ifndef _YOUHEADER_H_
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.
#3
在每个.h里加上条件编译的开关,如,yourfile.h可以这样:
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_
// .h文件内容
// .h文件末尾:
#endif
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_
// .h文件内容
// .h文件末尾:
#endif
#4
#if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //
#5
#inndef
#define
#endif
#define
#endif
#6
在.h文件中加入:
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer
#7
VC中??
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊
#8
前面的同志说的不错,还有两条规则如果你遵守的话,就不会出这样的问题了
1 一般不要在头文件里再包含别的头文件,只写在C|Cpp里
2 头文件里的变量只能是declare,也就是说加个extern前面
再就应该可以了
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的语法。
#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_
#ifndef _DLL_VERSION_H_
#define _DLL_VERSION_H_
#2
#ifndef _YOUHEADER_H_
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.
#define _YOUHEADER_H_
... //中间是你头文件内容
#endif
这样每次包含头文件时,如果已经包含了,就已经定义了_YOUHEADER_H_
那么头文件的内容就不会加入的源程序中了.
#3
在每个.h里加上条件编译的开关,如,yourfile.h可以这样:
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_
// .h文件内容
// .h文件末尾:
#endif
// .h文件最开始:
#ifndef _YOUR_FILE_H_
#define _YOUR_FILE_H_
// .h文件内容
// .h文件末尾:
#endif
#4
#if !defined(AFX_FONTCATEGROYSETDLG_H)
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //
#define AFX_FONTCATEGROYSETDLG_H
头文件具体内容
#endif //
#5
#inndef
#define
#endif
#define
#endif
#6
在.h文件中加入:
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer
开头部分:
#ifndef _HEADER_H_
#define _HEADER_H_
.....
结尾部分:
#endif
具体看看
c++ primer
#7
VC中??
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊
我觉得楼上这个用在c中合适,vc中如果用MFC向导做成的,一般不会重复的啊
#8
前面的同志说的不错,还有两条规则如果你遵守的话,就不会出这样的问题了
1 一般不要在头文件里再包含别的头文件,只写在C|Cpp里
2 头文件里的变量只能是declare,也就是说加个extern前面
再就应该可以了
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的语法。
#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(东方浩气)说得不错。