国产探花免费观看_亚洲丰满少妇自慰呻吟_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

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


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

圖片精選

主站蜘蛛池模板: 苏州市| 承德县| 丹阳市| 普格县| 桐乡市| 邛崃市| 南宁市| 庆城县| 札达县| 东阳市| 香港 | 奈曼旗| 伊通| 青海省| 通化市| 天镇县| 瑞丽市| 隆昌县| 余姚市| 保德县| 九寨沟县| 双辽市| 东明县| 康定县| 曲周县| 吴川市| 普宁市| 蓬莱市| 萍乡市| 宜川县| 湟中县| 诸城市| 融水| 阳东县| 绥芬河市| 紫阳县| 凤冈县| 鄢陵县| 大理市| 大邑县| 枣庄市|