防止重複包含, ifndef

2021-06-18 07:45:18 字數 630 閱讀 9983

這是

巨集定義的一種,它可以根據是否已經定義了乙個

變數來進行分支選擇,一般用於除錯等等.實際上確切的說這應該是預處理功能中三種(巨集定義,檔案包含和

條件編譯)中的一種----條件編譯。 c語言在對程式進行編譯時,會先根據

預處理命令進行「預處理」。c語言

編譯系統包括預處理,編譯和鏈結等部分。

#ifndef x//先測試x是否被巨集定義過

#define x

程式段 1 //如果x沒有被巨集定義過,定義x,並

編譯程式段 1

#endif

程式段 2 //如果x已經定義過了則編譯程式段2的語句,「忽視」程式段 1。

條件指示符#ifndef 的最主要目的是防止

標頭檔案的重複包含和編譯。了解:

條件編譯當然也可以用條件語句來實現。 但是用條件語句將會對整個

源程式進行編譯,生成的

目標**程式很長,而採用

條件編譯,則根據條件只編譯其中的

程式段1或程式段2,生成的

目標程式較短。如果條件選擇的

程式段很長,採用

條件編譯的方法是十分必要的。

防止標頭檔案重複包含

在程式設計中,經常會遇到這種情況,我們的某乙個程式會呼叫多個dll,因此需要包含多個標頭檔案,不同的標頭檔案可能包含了相同某乙個下一級標頭檔案,這就可能會導致標頭檔案的重複包含,從而導致變數 函式的重定義等等,為了解決這個問題,就要求我們在編寫dll的時候,使用 ifndef define endi...

防止標頭檔案重複包含方法

編譯器支援 標準未定義 由編譯器保證不會重複包含物理上的同乙個檔案 ifndef test.h define test.h code endif 條件編譯是標準支援的 因為標準支援 define定義的識別符號 不會重複引入同名的檔案 存在不小心寫錯define識別符號導致重複引入的問題 所以有些c標...

防止標頭檔案的重複包含

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