若函数的存储类型定义为extern型,则称其为外部函数

外部函数

若函数的存储类型定义为extern型,则称其为外部函数,它表示该函数可以被其他源文件调用。

若函数的存储类型定义为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.