C++头文件管理

1 使用双引号和尖括号的区别

对于很多初学者来说,在引入头文件时用""还是<>肯定还是比较模糊的,这里我们就要注意了,如果我们需要的文件包含在尖括号中,则c++编译器将在存储标准头文件的主机系统中查找;但如果文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录(或其他目录,这取决于编译器)。如果没有在哪里找到头文件,则将在标准位置查找。因此在包含自己的头文件时,应使用引号而不是尖括号。

2 预处理器编译指令

在同一个文件中只能将同一个头文件包含一次。记住这个规则很容易,但很可能在不知情的情况下将头文件包含多次。例如可能使用包含了另外一个头文件的头文件。有一种C++

技术可以避免多次包含同一个头文件。它是基于预处理器编译指令#ifndef(即if not defined)的。下面的代码片段意味着仅当以前没有使用预处理器编译指令#define定义名称XXX_H时,才处理#ifndef和#endif之间的语句:

#ifndef XXX_H

............

#endif

编译器首次遇到该文件时,名称XXX_H没有定义。在这种情况下,编译器将查看#ifndef和#endif之间的内容,并读取XXX_H的一行。如果在同一个文件中遇到其他包含XXX.h的代码,编译器将知道XXX_H已经被定义,从而跳到#endif后面的一行上。注意这种方法并不能纺织编译器将文件包含两次,而只是让它忽略除第一次包含之外的所有内容。大多数C和c++头文件都是用这种方案。否则,可能在一个文件中定义同一个结构两次,这将导致编译错误。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaveBobo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值