c - 静态分配和有限范围之间的关系

标签 c scope static

static 函数或 C/C++ 中的全局变量的范围仅限于它的编译单元。我找不到的是关于为什么的解释。为什么静态分配限制了变量和函数的范围?谢谢

最佳答案

声明变量或函数为“static”指示编译器使这些符号对链接器不可见,从而允许您控制从编译单元外部访问的内容。这有助于解决意外的名称冲突。 这在类可用(也就是在 C 中)之前更为重要,并且为了在 C++ 中向后兼容而被继承。

关于c - 静态分配和有限范围之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482853/

相关文章:

c - 在不同的线程中创建了多少个静态变量/函数的副本?

c - 在三个字符串中打印常用字符

c - 在 m x n 矩阵中绘制矩形、圆形或任意多边形

C程序float f = 123.456;为什么f在内存中是 "123.456001"

c - 使用 typedef 结构时出错

c# - 错误消息 “An object reference is required for the non-static field, method or property.”

c# - 这真的是一个改进吗(当内部范围处于循环中时将 var 移动到内部范围)?

c# - 使用 VS 的 Unity 工具在 VS 中调试 C# 时,所有变量都超出范围

C++ 错误 : Not declared in scope; Member function

java - Java 中的静态方法 - 最佳实践?