作用:提高程序的模块化特性,有利于扩展和维护
用法:
变量
1. 局部变量
普通局部变量是再熟悉不过的变量了,在任何一个函数内部定义的变量(不加static修饰符)都属于这个范畴。编译器一 般不对普通局部变量进行初始化,也就是说它的值在初始时是不确定的,除非对其显式赋值。普通局部变量存储于进程栈空间,使用完毕会立即释放。
2.静态局部变量
静态局部变量使用static修饰符定义,即使在声明时未赋初值,编译器也会把它初始化为0。且静态局部变量存储于进程的全局数据区,即使函数返回,它的值也会保持不变。变量在全局数据区分配内存空间;编译器自动对其初始化,其作用域为局部作用域,当定义它的函数结束时,其作用域随之结束
3.全局变量
全局变量定义在函数体外部,在全局数据区分配存储空间,切编译器会自动对其初始化。普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量啦 (否则编译器会认为他们是同一个变量)
静态全局变量仅对当前文件课件,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。
4.函数
函数的是使用方式与全局变量类似,在函数的返回值前加上static,就是静态函数了。静态函数只能在声明他的文件中可见,其他文件不能引用该函数,不同的文件可以使用相同的静态函数,互不影响。非静态函数可以在另一个文件中直接引用,甚至不必使用extern声明。
原文:https://www.cnblogs.com/yh1010/p/12659051.html