
⚡ CYBER_PROFILE ⚡
/// SYSTEM READY ///
WARNING \]: DETECTING HIGH ENERGY
**🌊 🌉 🌊 心手合一 · 水到渠成**

|------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| **\>\>\> ACCESS TERMINAL \<\<\<** ||
| [**\[ 🦾 作者主页 \]**](https://blog.csdn.net/fengtinghuqu520?spm=1000.2115.3001.5343) | [**\[ 🔥 C语言核心 \]**](https://blog.csdn.net/fengtinghuqu520/category_12955956.html) |
| [**\[ 💾 编程百度 \]**](https://blog.csdn.net/fengtinghuqu520/category_13083835.html) | [**\[ 📡 代码仓库 \]**](https://blog.csdn.net/fengtinghuqu520/article/details/147275999?spm=1001.2014.3001.5502) |
---------------------------------------
Running Process: 100% \| Latency: 0ms
*** ** * ** ***
#### 索引与导读
* [数据存储段名](#数据存储段名)
* [一、局部静态变量(面向过程编程)](#一、局部静态变量(面向过程编程))
* [二、静态成员变量(面向对象编程)](#二、静态成员变量(面向对象编程))
* [三、全局静态变量](#三、全局静态变量)
* [四、总结表](#四、总结表)
* [五、静态变量的初始化逻辑](#五、静态变量的初始化逻辑)
* [六、静态成员函数](#六、静态成员函数)
*
* [核心特性一:① 无 this 指针](#核心特性一:① 无 this 指针)
* [核心特性二:② 访问权限限制](#核心特性二:② 访问权限限制)
* [核心特性三:③ 灵活的调用方式](#核心特性三:③ 灵活的调用方式)
* [核心特性四:④ 内存模型](#核心特性四:④ 内存模型)
* [图表总结](#图表总结)
* [💻结尾--- 核心连接协议](#💻结尾— 核心连接协议)
## 数据存储段名

## 一、局部静态变量(面向过程编程)
* **生命周期:** 它不再存储在线上,而是存储在**全局/静态存储区**。它在程序第一次执行到声明处时初始化,直到程序结束才销毁
* **可见性:** 尽管它寿命很长,但它仍是**局部**的,只能在定义它的函数内部访问
* **典型用途:** 记录函数被调用的次数,或者实现单例模式
```cpp
void countCalls {
static int count = 0;
count++;
cout << "被调用次数" << count << endl;
}
```
*** ** * ** ***
## 二、静态成员变量(面向对象编程)
在类`(class)`中,静态成员属于**类本身**,而不是属于类的某个具体对象
* **共享性:** 所有该类的对象共享同一个静态变量副本。
* **初始化:** 通常在类内声明,在类外定义并初始化(除非是 `const` 整数类型或 `C++17` 的 `inline static`)。
* **访问方式:** 可以使用 **类名加作用域解析符** `ClassName::variable` 访问,也可以通过对象访问。
```cpp
class Player {
public:
static int totalPlayers; // 声明
Player() { totalPlayers++; }
};
int Player::totalPlayers = 0; // 必须在类外定义
```
*** ** * ** ***
## 三、全局静态变量
在文件作用域(所有函数之外)使用 `static`,其主要目的是**限制链接属性**
* 内部链接性(`Internal` `Linkage`):该变量仅在定义它的当前源文件(`.cpp`)中可见。
* 防止冲突:如果另一个文件中也定义了同名的全局变量,编译器不会报错,因为 `static` 将其限制在了当前文件的"私人空间"内。
* 注意:在现代 `C++` 中,更推荐使用匿名命名空间(`Anonymous` `Namespaces`)来替代全局静态变量,以实现相同的功能
**加上 `static` 后,每个变量都被锁在了自己的文件里**
**utils.cpp**
```cpp
#include