当前位置:首页 >  智能电子

全局变量和static变量的区别

发布时间:2024-07-22 09:00:55

static和全局变量的区别 

static全局变量和普通的全局变量主要有以下区别:

1. 作用域不同:static全局变量的作用域为定义该变量的源文件,也就是只能被该文件中的函数公用,从而避免在其他源文件中引起错误。而普通的全局变量可见区域是工程。

2. 初始化时机不同:static全局变量在编译时初始化,也就是在main()函数之前初始化并且仅能初始化一次。

3. 生存期不同:extern全局变量(用extern修饰的变量只是说明该变量在其他地方定义,所以在其他地方一定要用明确的定义如int a,并且不能用static修饰)、static全局变量和static局部变量的生存期都是“永久”,区别只是可见域不同。

从代码维护角度来看,对extern变量的修改可能会影响所有代码,对static全局变量的修改可能影响一个文件中的代码,而对static变量的修改可能影响一个块的代码;因此在选择变量类型时,优先级是static局部>static全局>extern全局。

《全局变量和static变量的区别》不代表本网站观点,如有侵权请联系我们删除

全数码 广州小漏斗信息技术有限公司 版权所有 粤ICP备20006251号

联系我们 关于我们 版权申明