1. 对于全局static变量,
初始化:首先是全局变量,被初始化为0,其次是static也被初始化为0;
存放位置:存放于内存的静态区。
作用域:开始于定义位置,终止于文件的结尾。 本文件之内在没有定义此static全局变量之前,想使用的话需要加extern声明。(最好在文件开始处就定义,避免使用extern)
特殊性:static还有隐藏的作用,本文件定义了static全局变量,其他文件即使加了extern,也不能使用他。
static严格的把作用于限制在从定义开始到文件结束的本文件内。
2. 对于局部static变量
初始化:初始化为0. (auto变量初始化的而是随机值)
存放位置:静态区
作用域:定义的函数内部使用,本文件内的其他函数也不能使用。
特殊性:不像auto局部变量会自动回收,static局部变量不会因为函数结束运行而销毁。
3. 对于static修饰的函数
这个static并不是指存放位置,而是起限制隐藏的作用,限制了只能此文件内使用,其他文件即使加了extern也不能使用。