#ifndef、#define、#endif作用

#ifndef …
#define …

#endif
作用: 防止頭文件的重複包含和編譯
例如: 假設你的工程裏面有4個文件,分別是 a.cpp , b.h, c.h, d.h。

a.cpp的頭部是:
#include "b.h "
#include "c.h "

b.h和c.h的頭部都是:
#include "d.h "
d.h裏面有int a,即a的定義。編譯器編譯a.cpp的時候,先根據#include "b.h "去編譯b.h這個文件,再根據b.h裏面的#include "d.h ",去編譯d.h的這個文件,這樣就把d.h裏面的int a編譯了;然後再根據a.cpp的第二句#include "c.h ",去編譯c.h,最終還是會找到的d.h裏面的int a,但是int a之前已經編譯過了,所以就會報重定義錯誤。

加上ifndef/define/endif,就可以防止這種重定義錯誤。

詳情參考文章:https://www.jianshu.com/p/2c349d00f712

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章