最近在一次采访中,我遇到了一个问题“静态变量如何在函数调用中保持它以前的值”。想了一会儿,但真的想不出任何令人信服的答案。有人能解释一下吗?尝试做谷歌,找不到我的信息。
最佳答案
静态变量存储在存储所有全局变量的.data区域中。这些全局和静态变量作为exec操作的一部分(即创建新进程/派生新进程)分配。
-----------------------
| Command Line Arg |
|---------------------|
| Stack |
| \/ | < Grow downward
|---------------------|
| /\ |
| Heap | < Grows Upward
|---------------------|
| .bss | (Uninitialized global variables)
|---------------------|
| .data | (initialized global/static variables)
|---------------------|
| .text |
-----------------------
在上图中,data是存储在函数内部声明或声明为全局变量的所有静态变量的区域。
希望这有帮助。
关于c - 静态函数如何通过函数调用保持其值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18431739/