巨集定義(#ifndef+#define+#endif)的作用
阿新 • • 發佈:2019-05-17
本文介紹#ifndef、#define、#endif三者一起使用的巨集定義的作用。
在標頭檔案中,我們經常會在標頭檔案中見到#ifndef、#define、#endif三者一起使用的巨集定義。
例如,在標頭檔案xxx.h中(此樣式可參考):
#ifndef __XXX_H__
#define __XXX_H__
#include <iostream>
// 其他程式碼
#endif
使用#ifndef、#define、#endif組合巨集定義的作用是:防止標頭檔案的重複包含和編譯。
例如,現在有4個檔案:main.cpp、fileA.h、fileB.h、fileC.h,這幾個檔案的包含關係如下:
在fileC.h中,存在nTest的定義。在這種情況下,編譯main.cpp時,系統就會報錯,提示nTest重定義,錯誤資訊如下:
使用本文介紹的#ifndef、#define、#endif巨集定義組合,就可以很好的避免此問題,修改後的fileC.h程式碼如下:
#ifndef __FILEC_H__
#define __FILEC_H__
#include <iostream>
using namespace std;
int nTest = 1;<