本文介紹#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