c - 在函数中声明静态变量

标签 c

海湾合作委员会 4.4.2 c89

我一直在重新设计其他人的源代码。

在一个函数中有人声明了一些静态变量,但似乎并没有达到使它们成为静态的任何目的。我只是想知道我下面的评论是否准确?

static char tempstr[64]; 

据我了解,在函数内声明静态变量时,它将保留作用域,因此就像全局变量一样。

此外,如果在全局范围内声明静态变量,则其范围仅限于文件。

非常感谢您的任何建议,

最佳答案

如果我理解你的解释,它是准确的。

在函数内部 static 意味着“分配数据段内存,使值在函数调用之间保持不变,以便所有函数实例(思考、递归或线程)共享相同的实际存储。”

如果在以后的函数调用中使用了先前的值,或者如果引用通过外部调用或返回指针从函数中泄露出来,这就很重要了。

关于c - 在函数中声明静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270604/

相关文章:

c - 尝试用 C 语言编写输出棋盘格的代码

c - 在 Ubuntu LInux 中使用 C API 锁定和解锁文件

python - ctypes:如何正确更新指针?

创建子进程可以访问的共享字符串数组

C - 像 printf 一样格式化字符数组

c - 不知道创建链表

c - 一个用 C 在基于 gnome 的系统上加载 bmp 文件的库

c - 为什么我的文件 IO 在 c 中无限循环?

c - 在 C 中为数组的元素分配随机值

c - 输入后 Char 指针(字符串)数组崩溃?