C语言教程(007)-认识第一个C语言程序(下·include的

2019-09-15  本文已影响0人  爱学习的老周

3、include

在我们写的第一段代码中,我们使用了一个函数printf(),为什么我们看不到这个函数的函数体呢?函数体不在那段代码里,那么编译器是怎么找到它的呢?

我们不知道printf()是怎么实现的,但是知道它的函数体在一个文件里,文件名称是stdio.h,是C语言标准库中的标准输入输出库,它提供键盘输入和屏幕输出的支持。第一行的代码#include<stdio.h>就起到把文件stdio.h内的代码粘贴到当前代码中的作用。头文件的.h中的hheader的缩写。

我们做几个测试,以了解#include的基本功能

测试1:

//创建源文件myTest01.c
#include"myHeader.h"//包含头文件
int main(void)
{
    headerTest();//调用函数
    return 0;
}
//创建头文件myHeader.h
#include<stdio.h>
void headerTest()
{
    printf("helloworld");
}

调试结果:helloworld

测试2

//创建头文件myHeader01.h
printf("I am header01\n");
//创建头文件myHeader02.h
printf("I am header02");
//创建源文件myTest02.c
#include<stdio.h>
int main(void)
{
    #include"myHeader01.h";
    #include"myHeader02.h";
    return 0;
}

调试结果:

I am header01
I am header02

测试3

//创建头文件myHeader01.abc
printf("I am header01\n");
//创建头文件myHeader02.abc
printf("I am header02");
//创建源文件myTest02.c
#include<stdio.h>
int main(void)
{
    #include"myHeader01.abc";
    #include"myHeader02.abc";
    return 0;
}

调试结果:

I am header01
I am header02

结论:

测试1和测试2说明了#include的本质相当于粘贴操作,将指定的文件里的内容粘贴到当前文件的当前行中。测试3说明了,对于任意格式(后缀)的文件,只要内容没错,就都是有效的。多个文件可以进行多重包含,这是一个相当灵活的功能。

你可能发现了,我们包含头文件用了两种符号< >“ ”,这两者的区别在于,使用尖括号< >,编译器会到系统路径下查找头文件;而使用双引号" ",编译器首先在当前目录下查找头文件,如果没有找到,再到系统路径下查找。所以我们完全可以使用双引号“ ”来包含标准头文件,但不建议,我们建议用尖括号< >引用标准头文件,用双引号“ ”引用自定义头文件。

为什么C语言不内置输入和输出?因为并非所有的程序都要用到输入输出功能,轻装上阵体现了C语言的哲学,正式这种经济使用资源的原则,使得C语言成为流行的嵌入式编程语言。

#开头的,叫做预处理命令。关于预处理命令的更多用法,将来会细讲。

4、总结

例如:

int 
        main(void)
{
    //函数体
}

这样在语法上也是对的,但不建议。

//注释内容
/*
注释内容
注释内容
注释内容
*/
上一篇 下一篇

猜你喜欢

热点阅读