趣文网 > 作文大全

传智播客:C语言函数对另外一个源文件函数进行调用(外部函数)

2020-12-02 16:15:02
相关推荐

前面文章关于函数的调用都是针对一个源文件中其他函数进行调用的,想要学习函数调用的可以看上一篇文章。有些情况下,函数是可能对另外一个源文件中的函数进行调用的。当一个程序由多个源文件组成的时候,根据函数是否能被其他源文件调用的时候,将函数分为内部函数和外部函数,本文就会围着这外部函数的特点进行讲解,希望每一个在学C语言的小伙伴都能弄懂函数的知识点。

外部函数在开发大的项目的时候,为了方便团队的协同工作,我们需要把一个项目拆分开,分成很多的源文件来实现。最后再将它们整理在一起。为了减少不必要的重复代码,一个源文件有时候需要调用其他的源文件中定义的函数。那么在C语言当中,可以被其他源文件调用的函数成为外部函数,在调用外部函数之前,需要在当前源文件中定义外部函数。定义外部函数的方式就是在函数的返回值类型前面提那家extern关键字,标准代码如下:extern int add(int x,int y);在上面这一行的代码当中,编译器会通过extern关键字知道add()函数是定义在其他的文件当中的外部函数;我们为了帮助大家更好的理解用法,下面在First c文件中定义一个add()函数,然后second.c文件当中使用first.c文件当中定义的add()函数,first.c和second.c的代码示例如下:first.c

second.c

那么运行结果如下:

在上面second.c文件当中通过调用的恶first.c里面定义的add()函数计算出来了1+2的结果。second.c文件当中的外部函数add()是在first.c文件中实现的,编译器从first.c里面找到了这个函数,并且把它的作用扩大到后面这个second.c的文件当中,于是second.c的文件中也可以调用这个first.c中定义的add()函数,从而完成上述计算。

下面为了简化我们编程的步骤,C语言是可以在定义外部函数的时候省略关键字extern的。比如说first.c的例子中定义的外部函数add()也是可以修改成下面这样:

int add(int x,int y);

上面代码是由函数的返回类型、函数名和参数列表所组成的,这类格式的代码被称作函数原型。当代码中包含函数原型的时候,可能会有下面两种情况:

(1)编程人员希望编译器可以自动的从其他文件中找出这个函数的定义

(2)编程人员先定义下来未实现的空函数,然后在其他的文件中具体实现;

下面我们就来看个例子,printf()函数的原型写法,如下:

int printf(const char *,…);

当在main()函数中定义了一个printf()函数的原型后再调用时就可以不用包含头文件,如下:

运行结果如下:

在上面这个例子当中,并没有包含头文件stdio.h,但是在代码第一行中生命了printf()函数的原型,那么编译器将会根据该原型自动从其他的文件中查找这个函数的定义,之后把这个函数的作用扩展到原型所在的文件里面,所以在本文件中就能调用printf()函数。

注意!在声明外部函数的时候,无论有没有关键字extern,外部函数与函数定义的返回值类型、函数名称都和参数列表必须是一致的。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

劳动最光荣作文300字 假期感想作文800字 2016安徽高考作文 我的小发明作文400字 描写梅花的作文400字 迎着风作文800字 品味成长作文600字 春节小作文150字 搓丸子作文 初中写作文的技巧和方法 小学生写过年的作文 美丽的春天100字作文 生活的启示作文400字 一篇写事的作文500字 什么触动了我的心灵作文 最美的什么作文500字 关于校园生活的英语作文 一件刻骨铭心的事作文 我和班主任的故事作文 关于读后感的作文400字 读书笔记作文300字 爱哭的我作文400字 美好的回忆作文450字 四季之美作文600字 与书为友作文500字 难忘的时刻作文600字 意外的收获作文600字 有关辩论会的作文 泰山游记作文600字 期待的眼神作文600字