暑假工作日志——关于static
关于static关键字作用的理解
1、 修饰变量,变量分为全局变量和局部变量,但他们都存在于内存的静态区
a、 静态全局变量,静态全局变量的作用域是变量被定义的文件中,其他文件即使使用extern也无法使用它,准确地说它的作用域是从定义之处开始到文件结尾处结束,在定义之前的代码也没法使用它,要想使用它只能使用关键字extern
b、 静态局部变量,在函数体里面定义的静态局部变量,就只能在这个函数体里面使用了,在同一个文档中其他函数也无法使用,在这个函数运行结束之后,该变量也不会被销毁,函数在下次运行时任然能使用到这个值。
2、 修饰函数
在函数之前加static关键字使得函数成为静态函数,但是此处static的含义并不是指存储的方式,而是指的是函数的作用域仅限于本文件中。使用内部函数的好处是:不用担心自己定义的函数与其他文件中别人定义的函数重名。
关键字static有着不同寻常的历史,起初在C中引入static是为了表示退出一个块后仍然存在的局部变量,随后在C中static有了第二种含义:用来表示不能被其他文件调用的函数或者全局变量。