注册 登录
编程论坛 C++教室

如何在避免头文件的多重包含(具体点啊)

锋了 发布于 2013-07-14 20:00, 2788 次点击
网上查了一下,都给这样的例子
    #ifndef INCLUDE_H
    #define INCLUDE_H
    //定义类的相关语句
    #endif
但是我就是不清楚这个 INCLUDE_H是怎么来的
是这样?
   #define INCLUDE_H #include<iostream>
这样?还是如何请指点下谢了
7 回复
#2
yuccn2013-07-14 20:37
一个宏而已,防止头文件重复包含的。比如在一个头文件中这样写了,那么在其他的原文件中包含多次这个头文件就不会出现编译错误
这个主要是防止那些嵌套包含而引起的头文件重复包含问题吧


但是我就是不清楚这个 INCLUDE_H是怎么来的
 是这样?
    #define INCLUDE_H #include<iostream>


不是

#ifndef INCLUDE_H  后面的INCLUDE_H  你也可以换成其他的,比如 INCLUDE_H_abcd 之类的都没有关系,只要保证这个工程唯一就行了

#3
锋了2013-07-14 20:55
回复 2楼 yuccn
也就是说我可以这样定义?
#ifndef _INCLUDE_IOSTREAM_
#define _INCLUDE_IOSTREAM_
#include<iostream>
#endif


这样来判断是否已经包含了iostream头文件,如果没有没有定义_INCLUDE_IOSTREAM_
 就是没有包含,用#include<iostream>包含进去。是这样吗
#4
锋了2013-07-14 21:24
回复 2楼 yuccn
卡在了一个点上,明白了,版主一定才恍然大悟。
#5
peach54602013-07-15 08:10
#pragrm once
#6
锋了2013-07-15 19:17
回复 5楼 peach5460
这中也可以,不过感觉还是使用自己能控制好点把。好久不见哦,都版主了哦。。。
#7
peach54602013-07-16 08:15
以下是引用锋了在2013-7-15 19:17:07的发言:

这中也可以,不过感觉还是使用自己能控制好点把。好久不见哦,都版主了哦。。。

之前我也喜欢用define控制,后来自己写代码闹了个大bug以后就改成pragma了,呵呵
#8
柳林清风2013-07-16 20:07
pragm once
1