一、为什么会有外部函数和内部函数
在公司做项目时,我们通常会一个项目分给一个小组内的几个人,最后将每个人写的源文件合在一块,但是我们在编写程序时难免会出现定义的函数名相同的情况,这时我们调用名字相同的函数时会出错。在C语言中,我们在定义函数时应该将函数定义为外部函数或者内部函数。
二、外部函数
外部函数就是可以被其他源文件调用的函数
如何写出外部函数:在函数名的前面加上关键字“extern”就变成外部函数
例子:
如图2,在second.c中在int add(int x,int y)前面加“extern”后,这个函数变成了外部函数,可以被另一个源文件first.c调用int add(int x,int y)这个函数了。
三、内部函数
内部函数即只在自己本身的那个源文件中运行,不会被其他的源文件调用。
如何写出内部函数:在函数名面前加上关键字“static”即可。
例子:
程序运行的结果为:second.c
为什么结果不是”first.c”而是“second.c”?
因为main()函数在second.c文件中,而且second.c文件中已经把它自己文件中的show()函数定义为了内部函数,所以first.c文件中的show()函数不会被second.c中的main()函数调用。
四、局部变量
局部变量是在一个函数体内定义的变量,局部变量只对所在的函数体有效,对其他函数无效。
五、全局变量
全局变量是在函数体外面定义的变量,全局变量对每一个函数都有效。
注意点:当局部变量与全局变量重命名时,全局变量会被屏蔽。
变量的作用域:变量需要在它的作用范围内才可以被使用,这个范围称为作用域。