#ifndef XX #define XX #endif
比如在A.h中
//A.h
#ifndef XX
#define XX
//实现代码
#endif
一般情况下,我们都会在A.cpp中
//A.cpp
#include "A.h"
//其它代码
//...
疑问1:我们要在B.h或B.cpp中用A.h中的内容,一般在B.h中包含就行
//B.h
#include "A.h"
但是,我们既然已经在A.cpp中包含过一次了,也即XX已经被定义了,那我们在比如B.h或B.cpp中包含A.h还有什么用呢?
疑问2:我们宏定义的XX的可见性,或者作用域在哪些范围???
[解决办法]
#define 只在同文件有效
[解决办法]
两个疑问是同一个问题
#define只在同一CPP文件有效
//A.h
#ifndef XX
#define XX
//实现代码
#endif
是为了防止重复包含同一个头文件
这样就算
//B.h
#include "A.h"
//B.CPP
#include "A.h"
#include "B.h"
头文件A.h也只被包含了一次