• 内存模型(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删除变量指向的内存。

  • 相关阅读:
    嵌入式(C)笔试题
    经典C语言编程注意点
    深拷贝和浅拷贝(一)
    拷贝构造函数
    树与二叉树的概念
    线性数据结构
    排序算法_冒泡排序
    排序算法_选择排序
    机器学习_支持向量机
    数据库_11_1~10总结回顾+奇怪的NULL
  • 原文地址:https://www.cnblogs.com/csucat/p/4637601.html
Copyright © 2020-2023  润新知