1.static的作用
作用域:
一是隐藏功能,对于static修饰的函数和全局变量而言
静态全局变量和静态全局函数的作用域都是在本文件有效,对其他文件隐藏。
二是保持持久性功能,对于static修饰的局部变量而言。静态局部变量在函数结束后并没有释放,而是保持到程序执行结束。
存储区:
静态局部变量和全局变量都是存储到内存中的静态数据区
2.程序设计中的内存分区
- 代码区:存放CPU执行的机器指令,代码区是可共享,并且是只读的。
- BSS区:存放的是未初始化的全局变量和静态变量。
- 数据(静态)区:存放已初始化的全局变量、静态变量(全局和局部)、常量数据。
- 栈区:由编译器自动分配释放,存放函数的参数值、返回值和局部变量,在程序运行过程中实时分配和释放,栈区由操作系统自动管理,无须程序员手动管理。
- 堆区:由malloc()函数分配的内存块,使用free()函数释放内存,堆的申请释放工作由程序员控制,容易产生内存泄漏。
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41553751/article/details/92443703
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。