全局变量中的静态常量与常量
Static const vs const in global variable
在 Foo.h 中,我将 1 个全局变量定义为
static const int g_var = 4;
然后,我将这个头文件包含在许多不同的头文件和.cpp文件中。如果我只是写
int g_var = 4;
我收到错误"g_var已经定义",这是可以理解的,所以我不得不添加静态,所以它只初始化一次。但是使用
const int g_var = 4;
解决了"已经定义"的问题。我读到这是因为 const 全局变量默认具有内部链接。那么这里的关键字静态是多余的吗?
静态关键字是一个访问说明符。如果在函数中使用静态,则允许变量存在于函数范围之外,并在不同的函数调用之间保留其值。 如果在函数外部定义静态变量或常量,则其范围将仅限于该特定文件。 使用常量,静态关键字可以简单地优化编译。
相关文章:
- 常量静态成员函数
- 常量静态成员函数:有另一种方法可用吗?
- C++常量静态字符* 数组
- 为什么常量静态变量应该在结构中初始化?
- 使用 constexpr 初始化非常量静态字符串
- 初始化常量静态 std::map unique_ptr作为值
- 静态函数常量静态成员函数
- 不能将值 120 分配给静态常量无符号字符或将值 200 分配给常量静态无符号 int
- 静态常量与常量静态
- 声明"静态常量"和"常量静态"有什么区别
- 常量静态成员初始化 - 类定义内部与外部类定义
- 为什么一个非常量静态成员会有多个定义
- 在类内部使用常量-静态与非静态
- 模板/泛型类中的非常量静态成员- c++与c#
- 类中的常量静态函数指针~如何初始化它
- 无法访问常量静态标准::映射枚举结构
- C++初始化非常量静态成员变量
- When是一个非静态常量数据成员,比常量静态成员更有用
- C++11 MinGW 4.9.1 shared_ptr和常量静态类字段结果"Undefined reference"
- c++动态初始化常量静态向量