#include文件包含命令的用法笔记

#include有两种用法:

  • #include <stdio.h>
  • #include “test.h”

使用尖括号< >,编译器会从系统路径下查找头文件; 使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。 总的来说,双引号" "的查找路径比尖括号< >的大。

注意:

  • 标准库内的头文件来说用尖括号或者双引号都可以成功引入,自己写的头文件只能用双引号来引入
  • 虽然说标准库内的都文件用双引号也能成功引入,但是双引号引用的话需要先从当前目录搜索一遍,所以相当于浪费了一些搜索的时间,所以建议自己写的头文件用双引号,标准库的头文件直接用尖括号进行引入
  • 文件包含允许嵌套:在一个被包含的头文件中可以包含另一个文件

避免重复的操作(条件编译与#pragma once)

虽然说在我们自己个人写代码的过程中一般不会出现头文件引用重复的情况,但是在大型项目的编写过程中,若没有事先注意,就会出现如下面这样的情况:
在这里插入图片描述
comm.h和comm.c是公共模块。 test1.h和test1.c使用了公共模块。 test2.h和test2.c使用了公共模块。 test.h和 test.c使用了test1模块和test2模块。

编译过程中编译器会将头文件的内容复制到代码中,这样最终程序中就会出现两份comm.h的内容。这样就造成了文件内容的重复。

那么如何解决这个问题呢?

答案:条件编译。

在自己编写的每个头文件中,开头写形如以下的内容:

#ifndef __TEST_H__ 
#define __TEST_H__ 
//头文件的内容
#endif //__TEST_H__

或者:

#pragma once

就可以避免头文件的重复引入

注:标准库中的头文件已经帮我们考虑到了这样的情况,已经做好了这样的工作,因此我们需要做到的就是,作为写头文件的程序员,我们自身需要做好这样的工作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值