#ifndef XX #define XX #endif

baobaodediaozhui 2012-09-21 05:30:17
比如在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的可见性,或者作用域在哪些范围???
...全文
104 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhdahai 2012-09-21
  • 打赏
  • 举报
回复
两个疑问是同一个问题

#define只在同一CPP文件有效

//A.h
#ifndef XX
#define XX
//实现代码
#endif

是为了防止重复包含同一个头文件
这样就算
//B.h
#include "A.h"

//B.CPP
#include "A.h"
#include "B.h"

头文件A.h也只被包含了一次
lin5161678 2012-09-21
  • 打赏
  • 举报
回复
#define 只在同文件有效

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧