网上看了一篇关于static的总结觉得很好,再次重新整理记录下来方便日后翻阅。
一、首先,用一句话定义static的作用:
static关键字作用是修饰静态变量(函数),区别于extern。由static修饰的变量其他源文件无法访问。同时用static修饰的静态局部变量具有保留上一次操作值的属性。
二、然后,我们看一下一个进程在内存中的布局:
1、其中.text段保存进程所执行的程序二进制文件,
2、.data段保存进程所有的已初始化的全局变量,
3、.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。
在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。
三、最后, 我们结合变量在内存中的存储来说明三种static的使用:
1、修饰全局变量:
由static修饰的静态全局变量存储在.data区,她的作用是不让其他源文件访问她自己。
2、修饰局部变量:
一、首先,用一句话定义static的作用:
static关键字作用是修饰静态变量(函数),区别于extern。由static修饰的变量其他源文件无法访问。同时用static修饰的静态局部变量具有保留上一次操作值的属性。
二、然后,我们看一下一个进程在内存中的布局:
1、其中.text段保存进程所执行的程序二进制文件,
2、.data段保存进程所有的已初始化的全局变量,
3、.bss段保存进程未初始化的全局变量(其他段中还有很多乱七八糟的段,暂且不表)。
在进程的整个生命周期中,.data段和.bss段内的数据时跟整个进程同生共死的,也就是在进程结束之后这些数据才会寿终就寝。
三、最后, 我们结合变量在内存中的存储来说明三种static的使用:
1、修饰全局变量:
由static修饰的静态全局变量存储在.data区,她的作用是不让其他源文件访问她自己。
2、修饰局部变量:
