【摘要】:函数本质上都是全局的,因为一个函数要被另外的函数调用,但是,如果需要也可以指定函数不能被其他源文件中的函数调用。只要在定义函数时,在函数名和函数类型的前面加static,该函数就成为内部函数。这样其他文件中的函数可以预知同名,互不干扰。声明语句的格式为:
7.9.1 内部函数与外部函数
函数本质上都是全局的,因为一个函数要被另外的函数调用,但是,如果需要也可以指定函数不能被其他源文件中的函数调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。
1.内部函数
如果一个函数只能被本文件中其他函数所调用,它称为内部函数。只要在定义函数时,在函数名和函数类型的前面加static,该函数就成为内部函数。即:
static 类型标识符 函数名(形参表)
内部函数又称静态函数。内部函数只局限于所在文件,其他源文件中的函数可不调用。这样其他文件中的函数可以预知同名,互不干扰。
2.外部函数
可以被其他源文件中的函数调的函数称为外部函数。只要在定义函数时,在函数名和函数类型的前面加extern,该函数就是外部函数。即:
extern 类型标识符 函数名(形参表)
C语言规定,如果在定义函数时省略extern,则隐含为外部函数。
如果某源文件中的函数要调用定义在本文件之外的外部函数,必须在本文件开头用extern对外部函数进行声明。声明语句的格式为:
extern 类型标识符 函数名(形参表);
【例7-22】有一个字符串,今输入一个字符,要求程序将字符串中与该字符相同的字符删除。
分析:为完成题目要求,可定义如下三个子函数,功能分别为:
主函数main只要调用上述三个函数即可。
为了说明外部函数的使用,今将4个函数分别存放于4个文件中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。