我们知道,当控件从函数中退出时,堆栈空间将被释放。那么静态变量会发生什么。将它们保存在任何内存中并在调用该函数时进行检索吗?
在维基说:
在C编程语言中,static与全局变量和函数一起使用以将其范围设置为包含文件。在局部变量中,static用于将变量存储在静态分配的内存中,而不是自动分配的内存中。虽然该语言不指示哪种类型的内存的实现,但是静态分配的内存通常在编译时保留在程序的数据段中,而自动分配的内存通常实现为瞬时调用堆栈。
和
静态局部变量:在函数内部声明为静态的变量被静态分配,同时具有与自动局部变量相同的作用域。因此,当再次调用该函数时,在一次调用期间将函数放入其静态局部变量的任何值仍将存在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句