我经常在头文件的开头看到这样的代码:
#ifndef HEADERFILE_H
#define HEADERFILE_H
文件的末尾是
#endif
这样做的目的是什么?
我经常在头文件的开头看到这样的代码:
#ifndef HEADERFILE_H
#define HEADERFILE_H
文件的末尾是
#endif
这样做的目的是什么?
这些被称为#include guards.
包含标头后,它会判断是否定义了唯一值(在本例中为HEADERFILE_H
).然后,如果没有定义,它将定义它并继续到页面的其余部分.
当再次包含代码时,前ifndef
个失败,导致一个空白文件.
这可以防止任何标识符(如类型、枚举和静电变量)的重复声明.