// 该变量生命周期不仅仅是进入该函数后,而是整个程序运行期间 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