关于#ifndef的一点疑问

wqtl_357 2005-12-17 10:48:02
#ifndef SIMPLE_H
#define SIMPLE_H

struct Simple
{
int i, j, k;
initialize(){i=j=k=0;}
};
#endif //SIMPLE_H

问:SIMPLE_H怎么和Simple_h联系,也就是说SIMPLE_H怎么知道Simple_h已被定义?
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
0黄瓜0 2005-12-17
  • 打赏
  • 举报
回复
补充:SIMPLE_H 是让看代码的人方便,一看就知道,哦,这里保护的是simple.h文件。其实,SIMPLE_H 可以用其他任何合法C++标示串,效果一样。比如
#ifndef ASDFGHJK
#define ASDFGHJK

struct Simple
{
int i, j, k;
initialize(){i=j=k=0;}
};
#endif //ASDFGHJK

Tycool 2005-12-17
  • 打赏
  • 举报
回复
楼上的楼上说的很清楚了。。。
shu_yoyo 2005-12-17
  • 打赏
  • 举报
回复
防止文件被重复定义。
dx30611 2005-12-17
  • 打赏
  • 举报
回复
LZ理解错了
这是防止头文件被重复编译
比如a.h中有Simple.h,b.h中也Simple.h,
然后c.h中有a.h,b.h,这样就会出现编译错误
而定义SIMPLE_H就是为了防止这个情况,SIMPLE_H没有实际意义
当发现SIMPLE_H已经定义是就不会编译这个文件

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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