gpt4 book ai didi

linux - 函数局部的静态变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:19 25 4
gpt4 key购买 nike

在 Linux 中,“静态”变量存在于 BSS 段(在未运行的代码中),“局部”变量存在于“堆栈”中。这意味着 BSS 区域中存在函数的局部静态变量。如何进行簿记以确保范围在函数本身内?

最佳答案

变量的存储位置与作用域无关。通常是编译器本身限制范围(访问变量)。当你有这样的陈述时:

static int xyzzy;

在一个函数内,xyzzy 将不允许被该函数外的代码访问,不管它是否具有静态存储持续时间。

任何这样做的尝试都将是编译时错误,而不是运行时检查。

事实上,您可以影响局部静态变量,但可能会导致缓冲区溢出(运行到它所在的存储区域),而不是通过它的名称(编译器不允许这样做)。

关于linux - 函数局部的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com