关于#ifndefine...#endif问题,大哥帮忙

fengbaotiaorulei 2004-09-01 01:40:27
#ifndefine NAME_H_
#define NAME_H_
class Stact
{
public:
Stcat();
~Stcat();
//..............
protced:
char* str;
int a;
}

#endif


这个编译预处理说明了什么呀?书上说
#ifndef NAME_H_
#define NAME_H_
#endif
是如果之前没有定义NAME_H_则执行#define这一句
现在假如NAME_H_之前没有定义过,则执行
#define NAME_H_
class Stact
{
//..............
}

那么NAME_H_和 class Stact有关系么?如果有关系说明了什么?如果没有关系他们表示什么?
...全文
378 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oo 2004-09-01
  • 打赏
  • 举报
回复
防止重复include的情况:
比如:
a.h:
#include "name.h"
.....


b.h:
#include "name.h"
#include "a.h"
......

如果没有#ifndef NAME_H_
#define NAME_H_
#endif
这种机制,则会造成编译时出错(class Stact重复定义)

15,447

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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