若函数的存储类型定义为extern型,则称其为外部函数,它表示该函数可以被其他源文件调用。
外部函数的声明形式:
extern <返回值类型> <函数名>(<参数>);
例如:extern int sum(int a,int b);
【例6-10】阅读以下程序,理解外部函数的使用。
1.file1.c
extern int sum(int a,int b)
{
return a+b;
}
2.file2.c
extern void show(int s)
{
printf(“sum=%d\n”,s);
}
3.example6-10.c
#include <stdio.h>
extern int sum(int a,int b);
extern void show(int s);
int main(){
int x=10,y=20,s;
s=sum(x,y);
show(s);
return 0;
}
程序运行结果:
sum=30
在文件file1.c、file2.c中的函数定义可以不需要extern加以说明,默认为外部函数。
在example6-10.c中对外部函数的声明也可以不用extern加以说明,默认为外部函数。
由多个源文件组成一个程序时,main()函数只能出现在一个源文件中。
有多个源文件组成一个程序时,可以用三种方式连接:
(1)将各源文件分别编译成目标文件,得到多个目标文件(.obj文件),然后用连接命令把多个.obj文件连接起来,如:tlink example6-10.c+file1.obj+file2.obj
(2)建立项目文件(.prj文件或.dsw文件),具体操作可以参阅C语言集成开发环境说明。
(3)使用文件包含命令。具体操作可以参阅本章6.2.3.