这几个关键字是C语言面试常考知识点。面试时最好过一下,防止一时脑回路跟不上,不小心翻车。
1、static作用
第一、static修饰的静态局部变量只执行一次初始化(即再次进入时不会重新赋值),而且延长了局部变量的生命周期,直到程序运行结束以后才释放,但其作用局仍为局部。
第二、static修饰的全局变量和函数只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
第三、无论是修饰全局还是局部,如果没有进行初始化,其默认值为0。
隐藏与隔离的作用
在实际开发时,仅在模块内部使用的全局变量和函数通常声明为static,防止被模块外部调用或者产生重名等干扰。
保持变量内容的持久性
有时候,我们希望函数中局部变量的值在函数调用结束之后不会消失,而仍然保留其原值。即它所占用的存储单元不释放,在下一次调用该函数时,其局部变量的值仍然存在,也就是上一次函数调用结束时的值。这时候,我们就应该将该局部变量用关键字 static 声明为“静态局部变量”。
2、register
作用
用于定义一个寄存器变量,这个关键字请求编