對頭文件中條件編譯#ifndef __HEAD_H__ ... 的理解


#ifndef    __HEAD_H__ 

#define    __HEAD_H__
...    // 頭文件內容
#endif

 

  • 首先,使用該條件編譯的目的是:防止該頭文件重復引用。
比如,即使在主函數中寫了兩行#include "head.h”,該文件也只會被包含一次,如果頭文件head.h中沒有上面的條件編譯,則會包含了2次,有可能會報錯(是否報錯要看具體的編譯器,有些編譯器不會報錯)。
  • __HEAD_H__ 僅僅是一個標識,只要符合C語言標識命名規則,可以寫任意命名,為了易讀性,一般都會與頭文件名一致。
  • 其中的前兩個下划線與后兩個下划線__沒有任何語法上的意義,有些資料說是系統自帶的頭文件會前后各加兩個下划線__,用戶自己編寫的頭文件可以不用雙下划線__,以表示與系統頭文件的區別。
  • 最后HEAD_H中的下划線_表示頭文件“HEAD.H”中的點,在C的語法中,“.”不能作為標識中的字符,所以用“_”表示“.”。

 多謝評論提示,使用#pragma once更方便;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM