一、外部函数:
- 定义:定义的函数能被本文件和其他文件访问;
- 特点:
1.默认情况下,所有的函数都是外部函数;
2.不允许有同名的外部函数;
二、内部函数:
- 定义:定义的函数只能被本文件访问,其他文件不能直接访问;
- 特点:
允许不同文件中有同名的内部函数;
三、static对函数的作用
1.定义一个内部函数;
2.声明一个内部函数;
3.static不可神略;
四、extern对函数的作用:
1.完整的定义一个外部函数;
2.完整的声明一个外部函数;
3.默认情况下,声明和定义的函数都是外部函数,因此,extern可以省略;
五、全局变量分为两种(外部变量和内部变量)
1.外部变量
- 定义:定义的变量能被本文件和其他文件访问;
- 特点:
1.默认情况下,所有的变量都是外部变量;
2.不同文件中的同名变量都代表同一个变量;
2.内部变量
- 定义:定义的变量只能被本文件访问;
- 特点:
不同文件中的同名变量互不影响;
六、static对变量的作用
-
定义一个内部变量;
七、extern对变量的作用
-
声明一个外部变量;
八、局部变量
1.static修饰局部变量
- 延长局部变量的生命周期:
1.若不加static修饰,如在test函数内部定义了一个局部变量a,即:int a = 0; 当test函数运行结束,a就会被销毁,若再次调用test函数就又会对a分配存储空间;
2.若加上static修饰,如:static int a = 0; 直到程序结束的时候,a才会被销毁;
- static修饰局部变量并没有改变变量的作用域;
- 所有的test函数都共享着同一个变量a(变量a加static修饰后),即:多次调用test函数,加static修饰的变量a在test函数结束时,并没有被销毁,当下次再调用test函数时,不会再分配存储空间给被static修饰过的变量a;
代码练习: