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

posted @ 2013-10-18 11:44  懒猫欣  阅读(145)  评论(0编辑  收藏  举报