上一篇<一起学习C语言:函数(一)> 中,我们了解了函数的概念,以及函数实现与程序编译过程。本章节,我们分析内部函数和外部函数,以及变量的生命周期。
章节预览:
4. 外部函数与内部函数
4.1 外部函数
4.2 内部函数
5. 变量的生命周期与作用域
目录预览
章节内容:
4. 外部函数与内部函数
默认情况下,我们定义或声明的函数属于“外部”函数,又称为“全局”函数。全局函数即可以被本文件中的其他函数调用,也可以被其他文件中的函数调用。首先,我们分析函数如何在其他文件中调用到。
接下来,编写一个多文件工程(预编译加载函数实现):
math.c代码:
int Add(int a, int b)
{
return a + b;
}
main.c代码:
#include <stdio.h>
#include “math.c”
int main()
{
int res = Add(2, 3);
printf(“res:%d.”, res);
return 0;
}
在这个工程中,math.c属于源文件,main.c属于主文件(包含main函数)。 我们在math.c文件内实现了Add全局函数,在main.c内的main内调用Add函数。这个程序中,我们相当于把math.c当做头文件使用,为什么是这样呢?接下来,我们分析一下编译过程:
一. 预编译:
在控制台中输入gcc -E main.c -o main.i,预处理器把main.c中包含的文件经过预处理后写入main.i,打开main.i文件可以看到stdio.h和math.c文件预处理后的内容,而Add函数定义也在这一步保存在了main.i文件中。
二. 编译