C++ static(施工中)

static 变量

  头文件中的static会在引用该头文件的cpp中分别生成副本

//H.h
#ifndef _H_H_
#define _H_H_
static int a = 0;
#endif

//Ex_2.c
#include "H.h"
void fun_ex2 ()
{
    a++;
    printf ("%d", a);//这时会打印1
}
//Ex_3
#include "H.h"
void fun_ex3 ()
{
    printf ("%d", a);//这时打印的依然是0,即便先被Ex_2中的fun_ex2()函数修改过,因为他们 
                 //是两个独立的副本
}
示例

  函数内的静态变量会在该函数调用时生成,结束时不销毁。

//Ex_1.c
void fun_1 ()
{
    static int a = 0;
    a ++;
    printf ("%d", a);
}

void fun_2 (int times)
{
    int i = 0;
    for (;i < times; i++)
    {
        fun_1 ();
    }
}
示例

  本段参考资料:

  参考1

原文地址:https://www.cnblogs.com/superzrx/p/3375788.html