【发布时间】:2011-07-08 09:55:03
【问题描述】:
静态变量存在于函数之外,至少就它们的内存而言(不是范围),对吧?但是我一直关心的一件事是,当我第二次调用该函数时会发生什么。例如:
f(){
static char buffer[256*256];
stuff(buffer);
}
当我第二次调用此函数时,从技术上讲,它不是第二次声明变量“缓冲区”吗?还是编译完所有内容后,它对静态变量(与普通变量相反)的工作方式是否不同?
...我有时希望有一个图表或一些 c++ 编译器通常会将代码转换成的东西(减去优化),这样我就不必用这样的小问题来打扰你们了,啊哈。提前谢谢!
编辑:我知道它是这样工作的,但我只是想知道为什么。这可能是一件令人麻木的简单事情......
【问题讨论】:
标签: c++ function static-variables