关于C语言static定义函数类型的具体解释
2014-09-02 09:40
288 查看
内部函数和外部函数
函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:
一、内部函数
如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函
数。定义内部函数的一般形式是: static 类型说明符 函数名(形参表)
例如:
static int f(int a,int b) 内部函数也称为静态函数。但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。 因此在不同的源文件中定义同名的静态函数不会引起混淆。
二、外部函数
外部函数在整个源程序中都有效,其定义的一般形式为: 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); /*外部函数定义*/
{
……
}
函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:
一、内部函数
如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用, 这种函数称为内部函
数。定义内部函数的一般形式是: static 类型说明符 函数名(形参表)
例如:
static int f(int a,int b) 内部函数也称为静态函数。但此处静态static 的含义已不是指存储方式,而是指对函数的调用范围只局限于本文件。 因此在不同的源文件中定义同名的静态函数不会引起混淆。
二、外部函数
外部函数在整个源程序中都有效,其定义的一般形式为: 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); /*外部函数定义*/
{
……
}
相关文章推荐
- 关于C语言static定义函数类型的具体解释
- 关于C语言static定义函数类型的具体解释
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- C语言学习趣事_关于C语言中复杂类型定义
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- C语言printf()函数具体解释和安全隐患
- C语言数组类型以及函数类型的定义
- C++ 关于static_cast reinterpret_cast dynamic_cast 以及 const_cast 用于类型转换的函数使用 20180315 day7
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- 关于“在C语言中只能在函数前面定义变量”的问题
- 关于C语言中省略函数的返回类型的测试
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- [原创] 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- 为什么在C++使用pthread_create()的时候,类成员函数做线程的处理函数必须要定义成static类型的?
- 预编译、类型定义、static、extern及函数指针
- 关于static函数在类中的定义和使用
- 一劳永逸:关于C/C++中指针、数组与函数复合定义形式的直观解释
- 关于Far 类型定义在WinDef.h中的解释
- 关于C函数声明与定义返回类型不一致的解释