今天为大家介绍c语言中的一个关键字static,static是一个可以修饰多个对象的关键字,并且修饰的变量自身的属性发生了一些变化。
static修饰局部变量
在局部变量前面加一个static,意为这个被static修饰的局部变量的生命周期被改变了,我们知道,一个变量在此程序中,拥有着自己的作用域和生命周期,局部变量的作用域是变量所处的局部范围,而它的生命周期则是进入作用域被创捷,出了作用域就会被销毁,而被static修饰时,改变了它的生命周期,使得此变量进入作用域被创建,出了作用域依然存在,改变了此变量的生命周期,让他存在于整个工程当中。
static修饰全局变量
在全局变量前面加一个static,意为这个被static修饰的全局变量的作用域被改变了,全局变量的作用域是整个工程,生命周期是整个程序的生命周期,被static修饰时,改变了它的作用域,使得此变量只能在该变量所创建的源文件内(.c文件)内使用,不能在其他源文件内使用,改变了全局变量的内外连接属性,我们知道,如果我们在一个文件内创建变量,想在另一个文件内使用,要用到extern关键字,但加了static,这个内外连接的属性将不再有效,编译器就会报错,:未识别的标识符。
static修饰函数
函数是用来完成某项特定任务的,如果在函数前加static,其实和在全局变量前加static的功效一样,改变了它的作用域,改变了它的连接属性,使得它只能在所创建的源文件(.c文件)内使用,其他的源文件内不能使用。