標頭檔案被重複包含的危害及解決辦法

2021-08-11 03:19:16 字數 548 閱讀 9464

無非就是標頭檔案裡有一行

int a=1;

包含兩次就變成了

int a=1;

int a=1;

於是變數重複定義,報錯

類,函式同理

而當你寫成

#ifndef *** #define ***

int a=1;

#endif

包含兩次就是

#ifndef *** #define ***

int a=1;

#endif

#ifndef *** #define ***

int a=1;

#endif

第一次中,由於沒有定義***,所以做了兩件事,定義***,然後int a;

第二次中,由於已經定義***,所以啥都不做

pragma once是上述方式的簡寫,好處是再也不會有兩個標頭檔案因為使用了同樣的***而被忽略了你用過的套套肯定不會翻過來再用一遍

C C中防止標頭檔案被重複包含的方法

原部落格鏈結 為了避免同乙個檔案被include多次,c c 中有兩種方式,一種是 ifndef方式,一種是 pragma once方式。在能夠支援這兩種方式的編譯器上,二者並沒有太大的區別,但是兩者仍然還是有一些細微的區別。方式一 ifndef somefile h 或寫為 if define s...

防止標頭檔案的重複包含

防止標頭檔案重複包含的巨集想必大家都清楚,ifndef define endif就是幹這個用的,面試中也考過。我也是知道這個巨集的作用,今天我們就來實戰測試一下,網上說的那是別人的東西,只有自己測試過出結果的才是自己的東西。localhost test ls a.h test.c test.h lo...

重複包含標頭檔案的問題

在每個標頭檔案的最前端和最後端加以下 ifndef x 其中 x為唯一的標誌符 define x.endif 條件編譯,解決的是標頭檔案重複包含的問題 比如 a.h b.h 這個b.h是包含a.h的 include a.h include b.h 如果預處理階段,寫成這樣,實際上a.h就會插入兩次了...