c++ - 在全局范围内使用静态变量和函数

标签 c++ static global-variables global static-variables

当变量位于 .cpp 文件的全局范围内而不是函数中时,将其标记为 static 是否有用?

你也可以对函数使用 static 关键字吗?如果是,它们的用途是什么?

最佳答案

是的,如果你想声明文件范围变量,那么 static 关键字是必要的。 static 在一个翻译单元中声明的变量不能被另一个翻译单元引用。


顺便说一句,static 关键字的使用在 C++03 中已被弃用。

C++ 标准 (2003) 中的 $7.3.1.1/2 部分内容如下:

The use of the static keyword is deprecated when declaring objects in a namespace scope; the unnamed-namespace provides a superior alternative.

C++ 更喜欢 unnamed 命名空间而不是 static 关键字。请参阅此主题:

Superiority of unnamed namespace over static?

关于c++ - 在全局范围内使用静态变量和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725204/

相关文章:

c++删除动态数组的1个元素?

java - 多线程环境中具有静态引用/对象的同步块(synchronized block)

java - 在没有实例引用的情况下存储和访问类中的对象

C++:使方法每次都返回相同的对象

global-variables - 使用 Hugo,如何从基本文件中定义的部分文件访问变量?

c - 如何在c中不使用全局变量

c++ - 动态添加到图形数据结构

c++ - 如何用空格替换 std::string 中的所有非字母字符(数字和特殊字符)

c++ - 可以在从 Thread 类继承的对象上使用 "delete this;"吗?

c# - 如何在 C# 中获得对枚举类型的全局访问权限?