Chapter 12 存储类别、链接和内存管理(Storage classes, Linkage, and Momery Management)

1.存储类别

  • 一些基本概念和术语
    • 对象:被储存的每个值都占用一定的物理内存,C语言把这样一块内存称为对象。对象可以存储一个值或者多个值。一个对象可能并未存储事迹的值,但是它在存储适当的值时一定具有相应的大小。(注:C语言不是面向对象编程)
      • C程序指定硬件内存中对象的方式:
        • 通过标识符指定。例: int entity = 3;
        • 通过表达式指定。例:int * pt = &entity; pt是一个标识符,但*pt是一个表达式。
      • 描述对象
        • 存储期:指对象在内存中保留了多长时间。不同的存储类别具有不同的存储期、作用期和链接。
      • 访问对象
        • 标识符用于访问对象。通过作用域和链接描述标识符,标识符的作用域和链接表明了程序的哪些部分可以使用它。
      • 作用域:描述程序中可访问标识符的区域。一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或者文件作用域。
        • 块作用域:块是用一对花括号括起来的代码区域。定义在块中的变量具有块作用域,块作用域变量的可见范围是从定义处到包含该定义的块的末尾。(注:虽然函数的形参声明在函数的左花括号之前,但是他们也具有块作用域,属于函数体这个块。)局部变量都具有块作用域。
        • 函数作用域:仅用于goto语句的标签。这说明即使一个标签首次出现在函数的内层块中,它的作用域也会延伸到整个函数。
        • 函数原型作用域:用于函数原型中的形参名。作用范围是从形参定义到原型声明结束。这说明编译器在处理函数原型中的形参时只关心它的类型,二形参名通常无关紧要。(注:在变长数组中,形参名是有用的)。
        • 文件作用域:变量的定义在函数的外面,具有文件作用域。具有文件作用域的变量,从它的定义到该定义所在文件的末尾均有效。文件作用域变量也称全局变量。
      • 链接
        • 描述定义在程序某翻译单元中的变量可悲链接的成都。
        • C变量有3中链接属性:外部链接、内部链接或无链接。
        • 具有块作用域、函数作用域或函数原型作用域的变量是局部变量,无链接变量。这意味着这些变量属于定义它们的块、函数或原型私有。
        • 具有文件作用域的变量可以是外部链接或内部链接。外部链接变量可以在多个文件程序中使用,内部链接变量只能在一个翻译单元中使用。
        • 如何判断文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值