//------全局变量 静态全局变量----------- /* 静态全局变量 全局变量就是 外部变量。外部变量就是全局变量。不管你定义在哪个文件中。所谓全局就是可以扩展其作用范围到其他文件。 而静态全局变量就不能扩展作用域到其他文件。 静态局部 与 局部变量 静态局部在多次调用他所在的函数时,不重新分配内存--保存其值,而局部变量重新分配内存,不保存其值。 静态局部变量 不可以不能扩展其作用域到其他函数。局部变量当然也不能。 */ #include <StdAfx.h> #include <iostream> using namespace std; int globalVariable = 0; static staticGlobalVariable =0; extern void funTwo(); void fun() { staticGlobalVariable = 0; globalVariable =0; cout<<"staticGlobalVariable 所在的文件可以使用 "<<"staticGlobalVariable = "<<staticGlobalVariable<<endl; cout<<"globalVariable 所在的文件可以使用 "<<"globalVariable = "<<staticGlobalVariable<<endl; funTwo(); funTwo(); cout<<"静态局部变量, 和局部变量的作用域 "<<endl; cout<<"局部变量 不能扩充到其他函数块. 其作用范围只是函数块。即使你在其他函数中extern 声明它,也不能调用。 "<<endl; //cout<<"localVariable = "<<localVariable<<endl;//============='localVariable' : undeclared identifier extern staticLocalVariable; cout<<"静态局部变量 不能扩充到其他函数块. 其作用范围只是函数块。即使你在其他函数中extern 声明它,也不能调用。 "<<endl; // cout<<"staticLocalVariable = "<<staticLocalVariable<<endl;//=============unresolved external symbol "int staticLocalVariable" (?staticLocalVariable@@3HA) cout<<"staticGlobalVariable = "<<staticGlobalVariable<<endl; } void funTwo() { static int staticLocalVariable =0; int localVariable =0; localVariable +=5; staticLocalVariable +=5; staticGlobalVariable += 5; cout<<staticLocalVariable<<endl; }