宏定義(#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

相關文章
相關標籤/搜索