#ifndef
是 C++ 预处理器中的一个指令,它的作用是检查一个指定的宏是否已经定义。如果该宏没有定义,那么 #ifndef
指令后面的代码块将被包含在预处理结果中,并且 #define
指令会被执行,将指定的宏定义为指定的值。如果该宏已经定义,那么 #ifndef
指令后面的代码块将不会被包含在预处理结果中。
这种机制可以用于避免头文件被多次包含,从而导致重定义错误。通常,我们在头文件的开始处使用 #ifndef
指令来检查一个唯一的标识符是否已经定义,如果没有定义,则定义该标识符并包含头文件的内容。这样可以确保头文件的内容只被包含一次,从而避免了重定义错误。