关于static和extern
static 修饰局部变量的时候,局部变量就变成静态局部变量,出了局部范围,不会销毁,下一次进入函数依然存在。其实是因为:static 修饰的局部变量是存储在静态区的,实际改变的是变量的存储位置。本来一个变量是放在栈区,被static修饰放在静态区,从而导致出了作用域依然存在,生命周期并没有结束。
extern关键字是用来声明外部符号的,一个工程里面有两个源文件时,一个想用另外一个的全局变量,需要声明。 一个全局变量本来是具有外部链接属性的,但是被static修饰以后,外部链接属性就变成了内部链接属性,只能在自己所在的源文件内部使用,不能在其他文件内部使用。使用上感觉作用域变小了,static和extern 感觉上是相反的作用,extern将它延伸出去,static禁止延伸出去。
Static修饰函数类比于修饰全局变量。
每日技巧
最新推荐文章于 2024-09-01 17:50:34 发布