1. 程式人生 > >巨集定義(#ifndef+#define+#endif)的作用

巨集定義(#ifndef+#define+#endif)的作用

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