// 该变量生命周期不仅仅是进入该函数后,而是整个程序运行期间
void foo()
{
static int nVar = 0;
printf("var = %d\n", ++nVar);
}static int g_nVar; // g_nVar只能在本文件中使用,其他文件不能通过extern访问该变量
// 该变量不属于对象,而属于这个类
class Foo
{
public:
static int nCount;
};
int Foo::nCount = 0;
int main()
{
cout << Foo::nCount << endl;
return 0;
}// 该函数不属于对象,而属于这个类
class Foo
{
public:
static void ShowClassTag();
};
void Foo::ShowClassTag()
{
cout << "class Foo" << endl;
}
int main()
{
Foo::ShowClassTag();
return 0;
}const int nItem = 0; const int* pnItem = &nItem;
//file1.c const int g_nLocalVar = 100; int g_nVar = 100; //file2.c extern const int g_nLocalVar; // 非法声明 extern int g_nVar; // 合法
extern int g_nFoo;
int main()
{
g_nFoo++;
cout << g_nFoo << endl;
return 0;
}
int g_nFoo = 0;
// file1.c
extern const int g_nItem;
int main()
{
cout << g_nItem << endl;
return 0;
}
// file2.c
// 如果此处不加extern,该变量不能被外部访问的
extern const int g_nItem = 100;static extern const,布布扣,bubuko.com
原文地址:http://blog.csdn.net/arbboter/article/details/38661865