zoukankan      html  css  js  c++  java
  • 内存模型(memory models)和命名空间(namespace)

    继续《C++ premier plus 》

    先来解释一下scope和linkage,所谓scope,是指变量的作用范围,所谓linkage,是指变量能否在不同文件中共享

    1,自动变量(automatic variable),local scope, no linkage

    函数的参数,函数内定义的变量(未使用static限定),以及语句块中定义的变量,均为自动变量,自动变量具有local scope,即局部作用域,只在定义的函数或者块中起作用,当程序执行离开某个函数或区块时,其中的自动变量被释放(free)掉

    2,静态变量(static variable),有三种external linkage,internal linkage and no linkage

    静态变量只要程序在运行,就一直存在,不会被释放掉。声明external linkage的静态变量,要在所有函数或者区块外面声明即可,有file scope;要声明internal linkage的静态变量,在上述变量前面加上“static”限定符,有file scope;要声明no linkage的静态变量,在区块或者函数内声明static 类型的变量即可,有local scope。

    3、const 加在全局变量前,该变量默认具有internal linkage,而不是external linkage

    4、使用new创建的变量则不同于以上的情况,它会一直存在,直到程序结束,或者使用delete删除变量指向的内存。

  • 相关阅读:
    数组——基础
    程序流程控制——循环结构
    程序流程控制——分支结构
    运算符
    进制
    变 量
    Java中的名称命名规范
    标识符(Identifier)
    保留字(reserved word)
    关键字
  • 原文地址:https://www.cnblogs.com/csucat/p/4637601.html
Copyright © 2011-2022 走看看