// static.cpp
// 定义静态的全局变量
static int s_variable = 5;
// main.cpp
// 定义全局变量
int s_variable = 10;
int main(){
std::cout << s_varibale << std::endl;
}
最后的输出结果是 10
在以上示例中,把static.cpp中的改名更改为
// 定义全局变量, 与main.cpp的全局变量一直
int s_variable = 5
以上的代码执行就会报错,提示重复定义,也就是全局变量在整个项目中是唯一的,值运行定义一次,
而静态变量是单独的一块存储,并且是私有的
在以上示例中,我们把main.cpp的变量也定义成静态全局的也是可以正常执行的
当然你也可以让main.cpp读取外部的变量,更改如下
// main.cpp
// 定义全局变量
extern int s_variable;
int main(){
std::cout << s_varibale << std::endl;
}
这样执行以上代码输出的结果就是 5,是外部传入的
所以静态变量一定不能乱用
网友评论