宏定义(#ifndef+#define+#endif)的做用

本文介绍#ifndef、#define、#endif三者一块儿使用的宏定义的做用。ios

在头文件中,咱们常常会在头文件中见到#ifndef、#define、#endif三者一块儿使用的宏定义。spa

例如,在头文件xxx.h中(此样式可参考):io

#ifndef __XXX_H__
#define __XXX_H__
#include <iostream>
 
// 其余代码
 
#endif
使用#ifndef、#define、#endif组合宏定义的做用是:防止头文件的重复包含和编译。编译

例如,如今有4个文件:main.cpp、fileA.h、fileB.h、fileC.h,这几个文件的包含关系以下:stream

在fileC.h中,存在nTest的定义。在这种状况下,编译main.cpp时,系统就会报错,提示nTest重定义,错误信息以下:file

使用本文介绍的#ifndef、#define、#endif宏定义组合,就能够很好的避免此问题,修改后的fileC.h代码以下:样式

#ifndef __FILEC_H__
#define __FILEC_H__
#include <iostream>
 
using namespace std;
 
int nTest = 1;
 
#endifdi

相关文章
相关标签/搜索