zoukankan      html  css  js  c++  java
  • 关键字auto extern register static volatile

    1 auto 仅在语句块内部使用,初始化可为任何表达式,其特点是当执行流程进入该语句块的时候执行初始化操作,没有默认值。

    2 extern 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。

    3 register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。

      1)register变量必须是能被CPU所接受的类型

      2)因为register变量可能不存放在内存中,所以不能用“&”来获取register变量的地址

      3)只有局部自动变量和形式参数可以作为寄存器变量,其它(如全局变量)不行。

      4)局部静态变量不能定义为寄存器变量

      5)不能定义任意多个寄存器变量

    4  C++的static有两种用法:

                 面向过程程序设计中的static——普通变量和函数、不涉及类

                面向对象程序设计中的static——说明static在类中的作用

    5 volatile是一个类型修饰符(type specifier),修饰被不同线程访问和修改的变量;如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错。

  • 相关阅读:
    Polygon对象和Polyline对象的组成形式
    JavaScript脚本语言特色时钟
    洛谷——T P2136 拉近距离
    HDU——T 1498 50 years, 50 colors
    HDU——T 2119 Matrix
    HDU——T 1054 Strategic Game
    洛谷—— P2896 [USACO08FEB]一起吃饭Eating Together
    Django进阶之Form
    March 28 2017 Week 13 Tuesday
    March 27 2017 Week 13 Monday
  • 原文地址:https://www.cnblogs.com/landy_mo/p/2011903.html
Copyright © 2011-2022 走看看