博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解C语言的预编译指令之 include
阅读量:6678 次
发布时间:2019-06-25

本文共 669 字,大约阅读时间需要 2 分钟。

写过C语言的朋友都熟悉#include,在打印“hello world”这样一条语句也用上这条指令。但是,说熟悉它,只是表面熟悉,更多感觉是既熟悉又抽象陌生,结果也就只是不知道为什么的背诵了。抽象、熟悉而陌生,使得#include成为“最熟悉的陌生人”。

试着从另外的角度来深入理解它。

1:首先,它是一条预编译指令

也就是在编译之前就做了的,那么做了什么呢?动态包含。

2:其次,来理解何为“动态包含”?

一开始:

深入理解C语言的预编译指令之 include

效果:

深入理解C语言的预编译指令之 include

现在,先创建一个头文件:

深入理解C语言的预编译指令之 include

把语句拷贝到ok.h中:

深入理解C语言的预编译指令之 include

主文件中:

深入理解C语言的预编译指令之 include

效果一样:

深入理解C语言的预编译指令之 include

可见:#include 文件名 ,这条语句的功能是:在调用的时候复制该.h中的内容、粘贴到调用的地方的效果。这就是动态包含。

3:再次,为什么要这么做?也就是“动态包含做成#include”的意义:

这样的好处可以简化后续的维护:以后如果要修改了,只要到这个.h中来修改,那么N多地方多跟着是最新的了。

4:最后,继续探究!

其实.h也不一定是必须的,你可以是任意的后缀。这样就更加的体会出,#include 文件名,这个预编译指令的重点是#include,是动态包含,而不是后缀是什么文件。

如:我把ok.h改为ok.ncc,同时为了区别,增加了几个字:

深入理解C语言的预编译指令之 include

在主文件中修改包含的文件:

深入理解C语言的预编译指令之 include

结果同样正确(打印了最新的内容)

深入理解C语言的预编译指令之 include

更多C语言详解,敬请关注下集分解...

本文转自 ningcaichen66 51CTO博客,原文链接:http://blog.51cto.com/ningcaichen66/1965797,如需转载请自行联系原作者
你可能感兴趣的文章
js面试题1
查看>>
阿铭每日一题 day 4 20180114
查看>>
转载:C#中的泛型
查看>>
1.4 注册系统的逻辑与结构
查看>>
NOIP模拟2017.6.11解题报告
查看>>
洛谷 P1464 Function【动态规划(递推)/记忆化搜索(递归)】
查看>>
Python-Django 视图层
查看>>
uC/OS-II中includes块
查看>>
公共DNS推荐及dns测速
查看>>
查询获取所有数据库名及数据库中表的集合、数据库连接字符串(类生成器,暂时支持mysql,sql server,后期有oracle再更新)...
查看>>
Scramble String
查看>>
Linux基础:CentOS安装python3.7
查看>>
Daily Scrum: 2012/11/27
查看>>
vue学习中v-if和v-show一起使用的问题
查看>>
获取一个月前的当前时间
查看>>
第三期 预测——1.简介
查看>>
behavior planning——12.example cost funtion -lane change penalty
查看>>
基于 Spring + Atomikos + Mybatis的多数据源配置demo
查看>>
随笔-刚毕业找工作的点滴(程序员)
查看>>
利用poi3.8中SXSSFWorkbook实现大数据量导出excel
查看>>