分类:
static变量:
局部static变量:在函数内定义,生存周期为整个源程序,但作用域与自动变量相同,只能在定义的函数内使用。退出函数后,尽管该变量还继续存在,但不能使用
全局static变量:全局变量本身就是静态存储方式。区别在于,全局静态变量的作用域是本文件内,而全局变量是整个程序(多个源文件)。
static函数:
也叫内部函数。只能被本文件中的函数调用。
静态函数的好处(static静态不是指存储方式,而是指对函数的作用域仅局限与本文件):
1 速度快:静态函数会被自动分配在一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈。
2 不重名:不会与其他文件的函数重名。
static有什么用途?(请至少说明两种)
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用
总结一下:
1 隐藏功能,由其作用范围决定
2 持久性功能,存储在静态区。