c语言什么是外部函数调用 c语言内部函数外部函数

什么叫外部函数? (C语言问题)

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

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比徽州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式徽州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖徽州地区。费用合理售后完善,10余年实体公司更值得信赖。

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

定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:

static 函数类型 函数名(函数参数表){……}

在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:

[extern] 函数类型 函数名(函数参数表){……}

外部函数原型声明要有extern

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

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

有两种理解.(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文件(路径写对应,写完整就好)。

外部函数文件根据所写函数需要将对应头文件包含进来,stdio.h作为一个标准输入输出文件,只要你该外部文件内涉及到输入输出等操作,就是必须要包含进来的。

希望对你有所帮助!


网站标题:c语言什么是外部函数调用 c语言内部函数外部函数
浏览路径:http://myzitong.com/article/hhjsje.html