说到底是作用域的问题。
局部变量:
1 局部变量,作用范围只限于本函数体内
2 静态局部变量,与普通局部变量相比,加上static,它会先于定义它的函数被赋值,其生命周期会上升到程序运行期,且其值会在函数调用完毕依然存在(这是自然,因为其生存期变大了)。
对于静态局部变量,java是没有的,因为它的确不符合面向对象思想,而且它完全可以由其他面向对象的方式来实现,可以参看。
全局变量
1 全局变量,作用于所有文件,也就是说它被定义在函数外,却不能在其他文件重复定义,作用域是程序运行期。要想在其他的文件调用该变量,可以用extern关键字声明。
2 静态全局变量,仅仅作用于定义它的文件,其他文件无法调用到该变量,且extern也无法调用。
全局函数与成员函数
1 全局函数是定义在类外的函数,其作用域是所有文件,调用方式是头文件引用以及extern声明。加上static之后,就只能作用于定义它的文件,其他文件无法调用到该变量,且extern也无法调用。
2 成员函数是定义在类内的函数,其使用方式取决于定义它的类。因此没有特别需要说明的。