zoukankan      html  css  js  c++  java
  • C++静态持续变量

    C++为静态持续存储持续性变量提供了3种链接性:外部链接(可在其他文件中访问)、内部链接(只能在当前文件中访问)和无链接性(只能在当前函数或代码块中访问)。

     1 ...
     2 int globle = 100;          //静态持续性变量,具有外部链接性
     3 static int one_file = 50;        //静态持续性变量,具有内部链接性
     4 int main()
     5 {
     6 ...
     7 }
     8 void func1(int n)
     9 {
    10   static int count = 0;          //静态持续性变量,不具有链接性
    11 }

    如果要在多个文件中使用外部变量,只需要在一个文件中包含该变量的定义,但在使用该变量的其他文件中,都必须使用关键字extern声明它:

    //file01.cpp
    extern int cats = 20;    //definition because of initialization
    int dogs = 22;    //also a definition 
    int fleas;    //also a definition 
    ...
    //file02.cpp
    extern int cats;    //not definition because they use
    extern int dogs;    //extern and have no initialization
    ...
    //file98.cpp
    extern int cats;
    extern int dogs;
    extern int fleas;
    ...

     无链接性的局部变量将static限定符用于在代码块中定义,在代码块中使用static时,导致它在该代码块不处于活动状态时仍然存在。因此在两次函数调用之间,静态局部变量的值将保持不变。另外,如果初始化了静态局部变量,则程序只在启动时进行一次初始化。以后再调用函数时,将不会像自动变量那样再次被初始化。

  • 相关阅读:
    大batch任务对structured streaming任务影响
    spark 集群优化
    linux神器 strace解析
    打个 hadoop RPC的栗子
    netty 入门
    c#硬件对接数值转换
    RabbitMQ 消息队列入门
    RabbitMQ 开发环境安装部署
    Nginx-4.Nginx如何处理请求
    Nginx-3.控制nginx
  • 原文地址:https://www.cnblogs.com/SChenqi/p/9750164.html
Copyright © 2011-2022 走看看