1.介绍
在C++中#ifndef、#define和#endif是一种常用的防止头文件重复包含的机制。其作用是确保头文件的内容在同一个编译单元中只被包含一次,避免重复定义于编译错误。
2.用法
基本结构如下所示:
#ifndef UNIQUE_NAME
#define UNIQUE_NAME// 头文件的内容#endif // UNIQUE_NAME
#ifndef与#define放在最前,后边跟着头文件的宏,通常由文件大写字母与下划线(_)组成。
#ifndef UNIQUE_NAME——检测是不是没有定义UNIQUE_NAME。
#define UNIQUE_NAME——如果没有定义,就执行这条语句,定义UNIQUE_NAME。如果定义了就不执行。
#endif:结束条件编译。
3.注意事项
(1)唯一性:#ifndef后的宏名称必须是唯一的,命名方法通常为头文件名的大写形式与下划线组成。
(2)替代方案:C++11引入了#pragma once,也可以实现类似的功能,但#pragma once 不是标准的一部分,兼容性不如#ifndef。
4.总结
#ifndef、#define和#endif是C++中防止头文件重复包含的标准方法,确保头文件内容在同一个编译单元中只被包含一次。它是编写健壮、可维护代码的重要工具。
如有错误,敬请指正!!!