#ifndef是C语言中的条件编译指令之一,用于判断指定的标识符是否已经被定义,如果没有被定义则执行条件编译指令中的代码,否则跳过该代码块。
#ifndef的用法如下: #ifndef 标识符 // 代码块 #endif
其中,标识符是一个由字母、数字和下划线组成的标识符名称,一般用来表示一个宏定义。
当遇到#ifndef指令时,编译器会先判断该标识符是否已经被定义过,如果没有则执行条件编译指令中的代码块,否则跳过该代码块。
这种用法常用于防止重复包含头文件,以及根据不同的宏定义选择性地编译代码。比如:
#ifndef MYHEADER_H #define MYHEADER_H
// 头文件的内容
#endif
这段代码首先判断MYHEADER_H是否已经被定义,如果没有被定义,则执行后续的代码块,定义了MYHEADER_H宏,表示该头文件已经被包含过一次,后续再次包含时将会被跳过。这样可以避免同一个头文件被多次包含导致的重复定义错误。