最近在一次采访中,我遇到了一个问题“静态变量如何在函数调用中保持它以前的值”。想了一会儿,但真的想不出任何令人信服的答案。有人能解释一下吗?尝试做谷歌,找不到我的信息。

最佳答案

静态变量存储在存储所有全局变量的.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/

10-11 01:04
查看更多