欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入理解C/C++中的静态变量使用方法

最编程 2024-08-09 07:50:41
...

static:
作为c/c++的关键字之一,具有多种含义和应用,static 关键字可用于声明变量、函数、类数据成员和类函数。默认情况下,在所有块的外部定义的对象或变量具有静态持续时间和外部链接。 静态持续时间意味着,在程序启动时分配对象或变量,并在程序结束时释放对象或变量。 外部链接意味着,变量的名称在用于声明变量的文件的外部是可见的。 相反,内部链接意味着,名称在用于声明变量的文件的外部是不可见的。

在以下情况下,可使用 static 关键字:

  1. 在文件范围(全局和/或命名空间范围)内声明变量或函数时,static 关键字将指定变量或函数具有内部链接。 在声明变量时,变量具有静态持续时间,并且除非您指定另一个值,否则编译器会将变量初始化为 0。

  2. 在函数中声明变量时,static 关键字将指定变量将在对该函数的调用中保持其状态。

  3. 在类声明中声明数据成员时,static 关键字将指定类的所有实例共享该成员的一个副本。 必须在文件范围内定义静态数据成员。 声明为 const static 的整型数据成员可以有初始值设定项。

  4. 在类声明中声明成员函数时,static 关键字将指定类的所有实例共享该函数。 由于函数没有隐式 this 指针,因此静态成员函数不能访问实例成员。 若要访问实例成员,请使用作为实例指针或引用的参数来声明函数。

  5. 不能将联合成员声明为静态的。 但是,全局声明的匿名联合必须是显式声明的 static。