Table of Contents
C语言数据存储类型
特殊情况
全局变量
全局静态变量
局部变量
局部静态变量
可见性
C语言数据存储类型
链接性、作用域和生命周期
作用域:一个变量可以被引用的范围
生命周期:这个变量可以访问的时间段
链接性:多个文件间的数据共享
特殊情况
手动分配的内存(new/delete)需要自己管理,以下分类不包括此种
const类型一般(也是最好)都放在头文件,以下分类不包括此种
全局变量
声明在所有代码块之外,在程序运行期间一直存在,整个文件都可访问
具有外部链接性,需要引用外部变量的文件中用extern声明
如果两个文件都声明了相同名称的全局变量会造成链接错误
全局静态变量
限定词static
声明在所有代码块之外,在程序运行期间一直存在,整个文件都可访问
没有外部链接性,不会和同名的、有外部链接性的全局变量冲突
局部变量
声明在代码块内部,只在代码块内部可见,没有链接性
代码块结束即被注销
局部静态变量
限定词static
声明在代码块内部,只在代码块内部可见,没有链接性
在程序运行期间一直存在,初始化只会被执行一次
可见性
内部的声明会掩盖外部/全局的声明(就近原则)