#ifndef是C語言中的條件編譯指令,用于在編譯時判斷某個標識符是否已經被定義,如果沒有被定義則執行條件編譯指令后面的代碼。其語法形式為:
#ifndef 標識符(可以是宏定義、常量等) 需要執行的代碼 #endif
如果標識符已經被定義,則條件為假,將跳過條件編譯指令后面的代碼。如果標識符未定義,則條件為真,將執行條件編譯指令后面的代碼。
#ifndef的作用是避免重復定義,常用于頭文件的保護,可以防止頭文件被重復引用造成的重定義錯誤。當一個頭文件被多次引用時,只有第一次引用時會執行條件編譯指令后面的代碼,后續引用將跳過這部分代碼。這樣可以確保頭文件中的宏定義、結構體聲明等只會被編譯一次,避免了重定義錯誤。