国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++頭文件中加#ifndef #define #endif的作用淺析

2019-11-08 00:52:03
字體:
來源:轉載
供稿:網友

通常,在做一個項目工程時,往往有很多很多的文件,而由于面向對象的特性,為實現模塊化和編寫出穩定的、可讀性高、易維護的、健壯的代碼,往往將類封裝起來。假如某個頭文件被多個文件包含使用,當把這些文件編譯鏈接成一個可執行文件時,就會出現大量重復定義的錯誤,而在頭文件中加#ifndef #def #endif能避免頭文件的重定義。 例:如編寫頭文件complex.h 在頭文件開頭寫上兩行:

#ifndef _COMPLEX_H_ //命名規則一般講頭文件用大寫字母并將'.'改成下劃線'_',且在最前和最后都加上'_'#define _COMPLEX_H_ //Code Block#endif

這樣一個工程中有兩個文件都包含complex.h時,就不會出現重定義的錯誤了。

原因:第一次包含complex.h時由于沒有定義COMPLEX_H, if條件為真,這樣便會執行代碼塊,而當第二次包含complex.h時,由于已經定義便不會執行#ifndef COMPLEX_H #define COMPLEX_H與#endif之間的代碼塊。如此防止重復編譯(重復定義)。

在編寫程序時,我覺得不管大小,封裝類文件時都加上這個宏定義,當然,現在很多的IDE會自動生成這三行代碼。

對應的還有:

#ifdef //Code Block#endif

可用于條件編譯,這在代碼的測試和調試中會用得到,有時用這種條件編譯比用輸出語句簡潔的多。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 大渡口区| 西平县| 博罗县| 正阳县| 哈尔滨市| 德昌县| 通河县| 崇明县| 海门市| 永川市| 桓仁| 壤塘县| 绍兴市| 宕昌县| 高台县| 遂平县| 大关县| 三原县| 兴海县| 阜新市| 普兰店市| 钟山县| 黔西| 河曲县| 拜城县| 衡水市| 仁布县| 广元市| 台前县| 巨鹿县| 南靖县| 正阳县| 康定县| 浦北县| 金塔县| 沅江市| 安平县| 浦县| 隆化县| 泗阳县| 开封市|