c语言中外部函数是什么意思

作者&投稿:经盲 (若有异议请与网页底部的电邮联系)
什么叫外部函数? (C语言问题)~

当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。

定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:
static 函数类型 函数名(函数参数表){……}

在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:
[extern] 函数类型 函数名(函数参数表){……}

外部函数原型声明要有extern

简单说,外部函数是用户自定义函数,该函数写在另一个文件里.

外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。
有时要用extern来声明外部变量,以扩展外部变量的作用域。 也可用static声明外部变量,使该变量不能被其他文件引用。

用extern声明外部变量

extern可省略不写。
本文件里:在一个文件里,有不止一个函数,外部变量在第一个函数后面定义。若用extern在第一个函数前声明该变量则该变量可以在第一个函数中使用。
多个文件中:在其他文件中若想要用该文件中已声明的变量,则在文件头部声明该变量,即可在文件中使用。

用static声明外部变量

static声明后该外部变量就只能在本文件中使用。

有两种理解.(1)库函数是C语言的内部函数或自带函数,外部函数即程序员自定函数.
(2)凡加写了extern 的函数是外部函数.

第一种理解好懂:

C语言的内部函数指的是C语言自带的函数,无论是动态链接的或静态链接的. 这些函数通过C语言的头文件定义了.
例如, sin(),cos()等数学函数,在math.h中定义了,输入输出函数 printf(),fgetc()在stdio.h中定义了,时间函数表time(),ctime()等在time.h中定义了.还有许多其他内部函数.编程时,只要用#include <库名.h>写在编程头部,程序中就可调用.

自定义函数,就是用户自己写的函数.

第二种凡加写了extern 的函数是外部函数:

自定义函数可以与程序的main()写在同一个文件中,也可以写在另一个文件中,这时你可能还另写自己的头文件或者写extern....,告诉编译器,main中用到的某某函数是"外部函数".
例如,main()在a.c中,自定义函数my_func()在a2.c中

a.c内容:
#include <stdio.h>
extern float my_func(float a);
main()
{
printf("result=%f\n",my_func(2.0));
}

a2.c 内容:
float my_func(float a)
{
return a;
}

编译:
cl -c a.c [得到a.obj]
cl -c a2.c [得到a2.obj]
cl a.obj a2.obj [链接成a.exe]
运行:
a.exe

result=2.000000

extern float my_func() 是外部说明,告诉编译,main()里的my_func是外部函数,要通过链接(.obj)得到.

如果把my_func写在a.c里:
#include <stdio.h>
float my_func(float a){
retun a;
}
main()
{
printf("result=%f\n",my_func(2.0));
}

my_func() 就不是外部函数.
编译:
cl a.c [得a.exe]
运行:
a.exe

result=2.000000


什么叫外部函数? (C语言问题)
简单说,外部函数是用户自定义函数,该函数写在另一个文件里.

c语言中外部函数是什么意思
有两种理解.(1)库函数是C语言的内部函数或自带函数,外部函数即程序员自定函数.(2)凡加写了extern 的函数是外部函数.第一种理解好懂:C语言的内部函数指的是C语言自带的函数,无论是动态链接的或静态链接的. 这些函数通过C语言的头文件定义了.例如, sin(),cos()等数学函数,在math.h中定义了,输入...

什么是外部函数?什么是内部函数?
定义在当前翻译单元(一般是.c文件包含了头文件之后的结果)外,以extern前缀声明的函数对于当前翻译单元来说是外部函数。它提示编译器,假定这个函数的定义存在,但不在当前翻译单元中。因此若语法正确,编译器不对此函数产生标识符未定义的错误。链接器会检查编译器得到的若干目标文件以及静态库文件中的包括...

为什么C语言中所有的函数都是外函数
C语言外部函数是一种可在自身所处的源文件及其他源文件中都能被调用的函数。外部函数的作用域是整个源程序。函数调用 编辑 1、在定义函数时,若在函数首部的最左端加关键字extern,则表示此函数是外部调用,可被其他文件调用,函数首部可以为 Extern int fun(int a,int b);C语言规定,定义函数时省略...

关于C语言外部函数
也可以放到不同的目录下,前提是你在主函数文件中应当包含相应的头文件或C文件(路径写对应,写完整就好)。外部函数文件根据所写函数需要将对应头文件包含进来,stdio.h作为一个标准输入输出文件,只要你该外部文件内涉及到输入输出等操作,就是必须要包含进来的。希望对你有所帮助!

c语言中的extern是什么,有什么作用啊?
extern关键字可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。这里起到的是声明作用范围的用处。extern的另外用法是当C和C++混合编程时假如c++调用的是c源文档定义的函数或变量,那么要加extern来告诉编译器用c方式命名函数:文档A.cpp...

C语言外部函数函数调用
在C语言中,函数的外部调用是通过在函数声明时使用关键字"extern"来实现的。当你在函数定义的首部,如:c extern int fun(int a, int b);这样标记,表明这个函数fun不是在当前文件内部定义的,而是作为一个外部函数,可供其他文件调用。C语言的规则指出,如果在定义函数时省略了"extern",默认情况下...

在C语言中,extern的作用是什么?
在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:[extern]函数类型 函数名(函数参数表){……} 调用外部函数时,需要对其进行说明:[extern]函数类型 函数名(参数类型表)[,函数名2(参数类型表2)……];[案例]外部函数应用。(1)文件mainf.c main(){...

在编程中,函数是什么意思啊
在各类编程语言中,函数是一种过程,也称为子程序,它执行一个指定的运算或操作.函数有内部函数或称标准函数,外部函数也即用户定义函数等.能被程序或主函数调用.C语言中,函数的形式分无参和有参两类.无参函数不带回或带回函数值.有参函数在调用和被调用间有传递数据(变量)....

在C语言中,内部函数和外部函数的区别?
内部函数跟外部函数的区别在于:一个文件中定义的函数能否被其它文件调用。能被调用的函数在前面加extern(一般省略),而不能被调用的加static(不能省略),通常函数本质上是全局的,也就是外部的可调用的。我们通常调用的#include本质上就是一些外部函数的集合,由于在一个文件中的函数要调用另外一个...

四会市15828343392: c语言中外部函数是什么意思 -
雀航头孢: 有两种理解.(1)库函数是C语言的内部函数或自带函数,外部函数即程序员自定函数.(2)凡加写了extern 的函数是外部函数.第一种理解好懂:C语言的内部函数指的是C语言自带的函数,无论是动态链接的或静态链接的. 这些函数通过C语言...

四会市15828343392: 在C语言中,内部函数和外部函数的区别? -
雀航头孢: 内部函数跟外部函数的区别在于:一个文件中定义的函数能否被其它文件调用.能被调用的函数在前面加extern(一般省略),而不能被调用的加static(不能省略),通常函数本质上是全局的,也就是外部的可调用的. 我们通常调用的#include本质上就是一些外部函数的集合,由于在一个文件中的函数要调用另外一个文件的函数,要求在开始声明一下,为了省略这些声明,我们引用include命令.

四会市15828343392: 什么叫外部函数? (C语言问题) -
雀航头孢: 不知道你说的是不是用extern定义的函数 在C里,extern是告诉编译器某个变量或是函数已经存在于另一个已经编译好的文件中,即外部变量或函数.(比较include,是包含还没有编译的)这样在link的时候会自动寻找.在c++里,extern除了C里的功能,还有定义用其他语言编译好的外部变量或函数

四会市15828343392: 为什么C语言中所有的函数都是外函数 -
雀航头孢: 来自百度百科C语言外部函数是一种可在自身所处的源文件及其他源文件中都能被调用的函数.外部函数的作用域是整个源程序.函数调用 编辑 1、在定义函数时,若在函数首部的最左端加关键字extern,则表示此函数是外部调用,可被其他文件调用,函数首部可以为 Extern int fun(int a,int b); C语言规定,定义函数时省略了extern则隐含为外部函数,可被其他文件调用 2、在需要调用函数的文件中,用extern对函数声明,表示该函数是在其他文件中定义的外部函数 所以外函数只是一种引用方式,大项目多人分开写,可能会有多个文件,最后要整合在一起用.那被引用的文件中函数相对与引用者,就是外部函数.

四会市15828343392: 什么是外部函数?什么是内部函数? -
雀航头孢: 定义在当前翻译单元(一般是.c文件包含了头文件之后的结果)外,以extern前缀声明的函数对于当前翻译单元来说是外部函数.它提示编译器,假定这个函数的定义存在,但不在当前翻译单元中.因此若语法正确,编译器不对此函数产生标识...

四会市15828343392: C语言中的函数是什么意思 -
雀航头孢: C语言中的函数 有两种意思. 一,如同数学中的函数,给了自变量(C语言叫参数),送回 计算结果 ( 有 return). 其它计算机语言中 的 function. 例如: int plus(int x,int y) {return x+y;} 参数 整型 x,y,送回两数之和 x+y 二,其它计算机语言中 的 “子程序”-- subroutine 它只是完成某些功能的 可调用的 程序块,不送返 值 (无 return). C语言中叫 void 型 函数. 例如:void p(int s) { int i; for (i=0;i<s;i++) printf("*"); } 打印 s 个 星号.无送返值.

四会市15828343392: 在C语言中,外部函数与文件包含的区别 -
雀航头孢: 外部函数extern时声明这个函数为外部函数,本文件不做定义,只调用,编译不会出错,但不能运行(没有函数实体)....如果想有运行结果就必须将函数实体包含进来,所以文件包含和extern是配合使用的...文件包含只需要包含.h就是...

四会市15828343392: 谁可以给我讲一下C语言里的外用函数?
雀航头孢: 外部函数在整个源程序中都有效,其定义的一般形式为: extern 类型说明符 函数名(形参表) 例如: extern int f(int a,int b)如在函数定义中没有说明extern或static则隐含为extern.在一个源文件的函数中调用其它源文件中定义的外部函数时,应 用extern说明被调函数为外部函数.例如: F1.C (源文件一) main() { extern int f1(int i); /*外部函数说明,表示f1函 数在其它源文件中*/ …… } F2.C (源文件二) extern int f1(int i); /*外部函数定义*/ { …… }

四会市15828343392: 在编程中,函数是什么意思啊
雀航头孢: 在各类编程语言中,函数是一种过程,也称为子程序,它执行一个指定的运算或操作.函数有内部函数或称标准函数,外部函数也即用户定义函数等.能被程序或主函数调用.C语言中,函数的形式分无参和有参两类.无参函数不带回或带回函数值.有参函数在调用和被调用间有传递数据(变量).

四会市15828343392: C外部函数
雀航头孢: C里面 函数有效空间默认是 extern 不用声明 这意味着 平时写代码的时候如果某个函数仅仅是本文件使用记得在前面加 static ,这是个习惯问题 要有意识这样做 其他文件要引用这个函数只需要提供函数原型就行了 可以写在.h文件里面也可以直接写作.c文件里面 一般是一个模块一个.c和一个.h文件 .h文件包含所有外部需要看见的东西 不需要给外部看到的东西 全部加static 但编译的时候 要提供含有函数的.c文件 如果你是用IDE那么 只要都在一个工程下面 就行了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网