#ifndef是C語言中的條件編譯指令之一,用于判斷指定的標識符是否已經被定義,如果沒有被定義則執行條件編譯指令中的代碼,否則跳過該代碼塊。
#ifndef的用法如下: #ifndef 標識符 // 代碼塊 #endif
其中,標識符是一個由字母、數字和下劃線組成的標識符名稱,一般用來表示一個宏定義。
當遇到#ifndef指令時,編譯器會先判斷該標識符是否已經被定義過,如果沒有則執行條件編譯指令中的代碼塊,否則跳過該代碼塊。
這種用法常用于防止重復包含頭文件,以及根據不同的宏定義選擇性地編譯代碼。比如:
#ifndef MYHEADER_H #define MYHEADER_H
// 頭文件的內容
#endif
這段代碼首先判斷MYHEADER_H是否已經被定義,如果沒有被定義,則執行后續的代碼塊,定義了MYHEADER_H宏,表示該頭文件已經被包含過一次,后續再次包含時將會被跳過。這樣可以避免同一個頭文件被多次包含導致的重復定義錯誤。