首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

#ifndef XX #define XX #endif,该如何解决

2012-11-14 
#ifndef XX #define XX #endif比如在A.h中//A.h#ifndef XX#define XX//实现代码#endif一般情况下,我们都会

#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也只被包含了一次

热点排行