内部函数
当多人开发时,可能出现函数重名的情况,不同源文件中的同名函数会相互干扰
此时,就需要一些特殊函数,只在定义的文件中有效,这类函数称为内部函数。内部函数只能被本文件中其他函数调用。
在定义内部函数时,需要在函数的返回值类型前面添加static关键字,也称静态函数。
函数的首行:
static int fun(int a,int b)
示例:
//show.c
#include<stdio.h>
void show()
{ printf("first function\n"); }
//main.c
#include<stdio.h>
static void show()
{ printf("second function\n"); }
int main()
{
show();
}
如果在main.c 中不说明void show()为static函数,则系统报错。
外部函数
开发大型项目,可能包含很多源文件来分别实现,最终,再整合在一起,有时,一个源文件中,需要调用其他源文件中的函数
调用外部函数之前,需要在当前源文件中定义外部函数
定义外部函数的方式,在函数的返回值类型前面添加extern关键字
示例代码
extern int add(int x,int y);
编译器,通过extern关键字会知道,add()函数是定义在其他文件中的外部函数
示例代码
#include<stdio.h>
int add(int x,int y)
{
return x+y;
}
#include <stdio.h>
#include <stdlib.h>
extern int add(int x,int y);
int main(int argc, char *argv[]) {
printf("sum=%d\n",add(1,2));
return 0;
}
其中extern 可以省略。