static 以及变量声明和定义

#include <iostream>
#include<string>
#include<cstring>
using namespace std;

size_t count_calls()
{
    static size_t ctr;//只声明未定义 执行默认初值
    ctr=0;       //赋值
    return ++ctr;
}
int main()
{
   for(size_t i=0;i!=10;++i)
        cout<<count_calls()<<endl;
    return 0;
}

结果:

static 以及变量声明和定义

#include <iostream>
#include<string>
#include<cstring>
using namespace std;

size_t count_calls()
{
    static size_t ctr=0;//声明并定义
    return ++ctr;
}
int main()
{
   for(size_t i=0;i!=10;++i)
        cout<<count_calls()<<endl;
    return 0;
}

 static 以及变量声明和定义