美文网首页C语言好爽C语言Web前端之路
深入理解C语言的预编译指令之#include

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

作者: acd8eef1b5d7 | 来源:发表于2017-07-08 17:45 被阅读95次

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

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

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

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

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

一开始:

效果:

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

把语句拷贝到ok.h中:

主文件中:

效果一样:

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

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

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

4:最后,继续探究!

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

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

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

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

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

相关文章

  • iOS中#import和#include区别

    一.#include指令 1.include基本概念 #include 是C语言的预处理指令之一,所谓预处...

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

    写过C语言的朋友都熟悉#include,在打印“hello world”这样一条语句也用上这条指令。但是,说熟悉它...

  • 3-Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习。 预处理程序。 编译指令: 预...

  • 第5周:程序结构——5.2 编译预处理和宏

    1.编译预处理指令 # 开头的是编译预处理指令(其他语言也可使用,include 不是 C 语言关键字)。 它们不...

  • include作用

    #include的作用 #include 是C语言的预处理指令之一,所谓预处理指令,就是在编译之前做的处理,预处理...

  • C语言学习笔记

    1. C的预处理器 .h头文件 #include是C语言的预处理指令,C语言编译器在编译前会对源码进行预处理工作。...

  • 我的C语言学习笔记

    第一个C语言程序: 1.#include 是C语言的预处理指令,所谓预处理指令就是在编译之前作得处理,通常以#开头...

  • C语言11月23日第一课

    今天是C语言学习的第一天,我们从以下几方面 一,C语言程序格式 #include \\ 编译预处理指令...

  • C语言常用

    #pragma指令与#ifndef指令 在C/C++中,在使用预编译指令#include的时候,为了防止重复引用造...

  • [C++之旅] 0 Mac下编译运行C/C++

    [C++之旅] 0 Mac下编译运行C/C++ 编译c语言时采用gcc指令 编译c++语言时采用g++指令 以下以...

网友评论

  • 文坛小生:C的预编译指令有点像C#的类啊。或者说更像C#的命名空间
  • scarecrowlxb:再加上一点:#include<>是引入编译器提供的模块,而#include " " 则先在文件目录里查找模块,找不到时再到编译器提供的模块里寻找

本文标题:深入理解C语言的预编译指令之#include

本文链接:https://www.haomeiwen.com/subject/dekjhxtx.html