C++头文件呵护符(C++ Header Guard)艰深咱们会为了防止头文件被搜罗一再,会削减头文件呵护符

艰深咱们会为了防止头文件被搜罗一再,都市在每一个头文件中写与如下相似的代码:
// a.h
#ifndef A_H
#define A_H
//内容
#endif
这样,你假如在两个中间都有这个语句:
#include "a.h"
那末这个头文件将被保障只被退出一次,你知道为甚么会只退出一次吗?由于A_H这个宏界说哈。
而后这样着实也可能的:
如:
//a.h
甚么也不加..
调历时:
第一次调用
#ifndef A_H
#define A_H
#include "a.h"
#endif
第二次调用:
#ifndef A_H
#define A_H
#include "a.h"
#endif
前者叫外部呵护,后者叫外部呵护。
由于外部呵护每一每一可能会淡忘写,简略被误用,以是咱们推选运用外部呵护。
微软提供了一个指令使你可能更利便的呵护:
#pragma once//短处:利便,缺陷:无可移植性