关于C语言头文件引用的基础及进阶知识(个人理解)

您所在的位置:网站首页 c语言中如何引用头文件 关于C语言头文件引用的基础及进阶知识(个人理解)

关于C语言头文件引用的基础及进阶知识(个人理解)

2023-11-23 00:46| 来源: 网络整理| 查看: 265

一、< >与“ ”的区别?

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

所以:使用双引号比使用尖括号多了一个查找路径,它的功能更为强大。

而我们自己编写的头文件,一般存放于当前项目的路径下, 所以不能使用尖括号,只能使用双引号。(或者你把头文件放到系统路径中,但这样比较麻烦)

好的编程习惯是: 我个人的习惯是使用尖括号来引入标准头文件, 使用双引号来引入自定义头文件(自己编写的头文件),这样一眼就能看出头文件的区别。

这里大家可以深入了解系统路径是什么情况。

二、如何将自己写的函数放到头文件中?

重点来了 怎么include自己写的函数 如果我有三个文件 main.c my.h my.c ①My.c 里面定义函数 ②my.h里面写函数声明 ③Main.c里面写 #include 即可

这样来看,这种做法的最大好处就是main.c这个文件看起来比较简洁,因为相比在main.c里面定义函数的唯一区别就是定义和声明都在另外的文件中。

以上只是基本用法

三、关于引用头文件的进阶用法

进阶用法: 杂七杂八看了很多网站 我自己总结:(可能有不对欢迎指出~)

1.可以嵌套包含 就是a.h 里面写 #include “b.h”

为什么写程序时要用嵌套包含 俺暂时未了解 其实嵌套包含是一种不太好的事情 会造成编译逻辑混乱 降低效率 尤其可能导致重复包含 还要额外设置防重复包含的头文件写法等 所以尽量减少嵌套包含 这里重复包含具体是指:a.h文件中#include"c.h" 而b.h文件中也#include"c.h" 这样表面上看不出来,但实际上造成了重复包含的问题

2.如何防止重复包含 重复包含同一个头文件会降低编译效率

在头文件中这样写:(假设头文件名字为my.h) #ifndef MY_H #define MY_H …声明内容 #endif

这种方法的本质就是加一个 标记 作区分 注意:

①这里的MY_H视为符号,只有区分作用,一般取名时要和头文件名一致且大写,以免其他头文件取名时重复,包含这个头文件时写法依然是#include”my.h”。如果其他头文件也用MY_H,在include时这个头文件在my.h之后写,那么这个头文件就包含失败。

②这种写法虽然可以减小重复包含的坏影响 但也会降低编译速度 所以最好就不要重复包含

但是为什么相比重复包含要好一点呢? 因为重复引用 引用的头文件里面有时声明好多行 浪费很多时间 而这种写法才几行 对吧?

3.小注意点

注意 依然以main.c my.c my.h为例 在my.c里面定义函数时也可能会include很多头文件 这些头文件在my.h里面不需要表示!

四、小白の疑惑

当时接到项目时发现头文件这块我完全不会才补了一点知识, 但是有没有大佬告诉我为什么现成的代码里会有嵌套包含这种现象存在? 求解~

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3