c++的静态存储变量共提供了三种链接性: 外部连接性, 内部连接性, 无连接性。
外部连接性:变量允许外部文件访问,定义为全局变量,其它文件通过 extern 声明之后就可以进行访问。全局变量定义的时候应在函数外声明,并且不能添加 static关键字。
内部连接性:只允许本地文件访问,其它文件不能通过extern 声明访问,和全局变量一样也是在函数外定义,但是要在变量类型前加上 static 关键字,这也是我们常说的 static隐藏变量的功能。
无连接性 :只允许当前代码段访问。也就是说在声明的时候是在函数内部声明,只能通过调用函数来访问的静态变量, 定义在函数内部,类型前加static关键字。
同时普通函数添加static后也会导致仅本文件可见。
从链接性总结, static关键字起到了隐藏的作用。同时静态变量(上述三种)都会进行零初始化。将变量初始默认初始化为0