存储持续性、作用域和链接性
存储持续性、作用域和链接性 c++中使用3中不同的方案存储数据 c++11中使用4中不同的方案存储数据。 这些方案的区别在于数据保留在内存中的时间。 自动存储持续性 在函数定义中声明的变量的存储持续性为自动的。2种 静态存储持续性 在函数定义外定义的变量和使用关键字static定义的变量的存储持续性为静态。他们在整个程序运行过程中都存在。3种 线程存储持续性c++11 多核处理器中很常见。如果变量是使用thread_local声明的,则其生命周期和所属线程一样长。 动态存储持续性 使用new运算符分配的内存将一直存在,直到使用delete运算符将其释放或程序终止为止。有时被称为自由存储或堆。 作用域和链接 作用域描述了名称在文件的多大范围可见。 作用域为局部的变量只能在定义它的代码块中用。 作用域为全局的变量在定义位置到文件结尾之间都可用。 自动变量为局部作用域。静态变量为全局作用域还是局部作用域取决于它是如何被定义的。 在函数原型作用域中使用的名称只在包含参数列表的括号内使用。 在类声明的成员的作用域为整个类。 在名称空间中的声明的变量的作用域为整个名称空间。全局作用域是名称空间作用域的特例。 c++函数的作用域为整个类或整个名称空间。但不能是局部。因为不能在代码块中定义函数。如果函数作用域为局部,则只对之间可见。不能被其他函数调用。 链接性描述了名称如何在不同单元间共享