关于#ifndefine...#endif问题,大哥帮忙
#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有关系么?如果有关系说明了什么?如果没有关系他们表示什么?
问题点数:0、回复次数:1Top
1 楼oo(为了名副其实,努力学习oo技术ing)回复于 2004-09-01 14:11:20 得分 0
防止重复include的情况:
比如:
a.h:
#include "name.h"
.....
b.h:
#include "name.h"
#include "a.h"
......
如果没有#ifndef NAME_H_
#define NAME_H_
#endif
这种机制,则会造成编译时出错(class Stact重复定义)Top




