海湾合作委员会 4.4.2 c89
我一直在重新设计其他人的源代码。
在一个函数中有人声明了一些静态变量,但似乎并没有达到使它们成为静态的任何目的。我只是想知道我下面的评论是否准确?
static char tempstr[64];
据我了解,在函数内声明静态变量时,它将保留作用域,因此就像全局变量一样。
此外,如果在全局范围内声明静态变量,则其范围仅限于文件。
非常感谢您的任何建议,
最佳答案
如果我理解你的解释,它是准确的。
在函数内部 static 意味着“分配数据段内存,使值在函数调用之间保持不变,以便所有函数实例(思考、递归或线程)共享相同的实际存储。”
如果在以后的函数调用中使用了先前的值,或者如果引用通过外部调用或返回指针从函数中泄露出来,这就很重要了。
关于c - 在函数中声明静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270604/