C 中静态全局和非静态全局标识符之间有什么区别?



static全局和非static全局标识符在C ?

中有什么区别态a 静态全局变量具有内部链接
a 非静态全局变量具有外部链接

好阅读:
什么是外部链接和内部链接?

仅在转换单元(即源文件)中可用一个全局static变量。源文件。

可以从其他文件访问全局非静态变量,而静态全局变量不是

如果您不知道有什么区别,那么正确的答案可能会使您更加困惑。简而言之,一类static s在文件范围内并未实现静态。类的静态与常规变量相同,但是必须通过将它们的班级名称前缀来引用。文件范围上的静态变量仅是文件本地的。要了解这意味着什么,请尝试将两个带有相同名称的变量添加到一个项目中。您将获得链接器错误,因为有多个相同的符号。通过制作符号静态,您可以避免问题,并且可以从文件外部访问变量的名称。

相关内容

  • 没有找到相关文章