#ifndef
是 C++ 預處理器中的一個指令,它的作用是檢查一個指定的宏是否已經定義。如果該宏沒有定義,那么 #ifndef
指令后面的代碼塊將被包含在預處理結果中,并且 #define
指令會被執行,將指定的宏定義為指定的值。如果該宏已經定義,那么 #ifndef
指令后面的代碼塊將不會被包含在預處理結果中。
這種機制可以用于避免頭文件被多次包含,從而導致重定義錯誤。通常,我們在頭文件的開始處使用 #ifndef
指令來檢查一個唯一的標識符是否已經定義,如果沒有定義,則定義該標識符并包含頭文件的內容。這樣可以確保頭文件的內容只被包含一次,從而避免了重定義錯誤。