前言
或许你在学习C语言第一节课的时候,C语言老师迅速敲打了#include<stdio.h>这行代码并且不作解释。当你鼓起勇气举手的时候,老师神秘地朝你笑笑说:“我们以后会慢慢讲的。”
接下来我会深入浅出为小白解释下这行代码的意思。
一、#include是什么?
#include是一条C语言预处理指令(preprocessor directive)。因为一般来说C语言在编译之前会进行一些准备工作,称为预处理(preprocessing)。#include中的#符号表示,C语言预处理器在编译器接手之前会处理这条指令。include是包含的意思。
二、stdio.h是什么 ?
stdio.h是标准输出/输出头文件。英文全程为standard input/out.head。可以简单理解为在这个文件中包含了一些输入和输出的函数。换句话说,要用到printf()和scanf()这两个打印和输入函数,就必须要有这个文件。
三、扩展知识 #include<math.h>
那再比如,我在程序中需要计算某个数字的绝对值,那么我可能就需要用到abs()这个函数。
int abs(int i); //返回整型数i的绝对值; 例如 int abs(-3.5) == 3.5;
那既然要用到这个函数,那头文件必须写 #include<math.h>才能用到这个函数。 事实上 <math.h>里面还有各种数学函数,如幂函数、三角函数、指数函数等。当在实际需求中需要使用到这些函数的时候,就得写#include<math.h>。
总结
这行代码分开来可以这样读,#表示预处理,inclue包含,包含啥呢?包含<stdio.h>这个头文件。合起来就是预处理标准输出输出头文件。再用最简单的话说。在写C语言代码的时候,我们可能要在屏幕上输入和输出一些数据时,需要用到输入输出函数。那么这个时候就必须要#include<stdio.h>这行代码。
扩展:为什么不内置这些功能呢?
也许有小伙伴会问了,为什么不把这个输入和输出的基本功能内置到语言中呢。事实上,并非所有的程序都需要输入输出,因此这也体现了C语言短小精悍,合理利用资源的原则。