随着static在C一个能保持一个stack变量四周,创建功能甚至存在了.
但是,在这种情况下,
void static_func() {
static int var = 1;
var += 1;
}
Run Code Online (Sandbox Code Playgroud)
我可以访问var外部static_func()并返回其值.我们假设static_func()在该中调用三次main(),则值为var3.
但是,1每次执行该功能时都会设置它.为什么我仍然得到3的价值?!
一旦你说static int var = 1;,这个变量就被创建并初始化了.这种情况只会发生一次,否则你会用无用的重复内容充斥你的记忆,因为这个变量将在整个程序运行时保持活跃状态.