静态变量可具有三种链接性:
1)外部链接性:可在其他文件中访问,
2)内链接性:只能在当前文件中访问
3)无链接性:只能在当前函数和代码块中访问
编译器将分配固定的内存块来存储所有的静态变量,这些变量在整个程序执行过程中一直存在。
另外,如果没有显示的初始化静态变量,编译器将把它设为0,在默认情况下,静态数组和结构将每个元素或成员变量的所有位都设置为0;
定义方式:
1)外:必须在代码块的外面声明它,可使用external修饰也可省略;
2)内:必须在代码块的外边声明它,并且使用static限定符
3)无:必须在代码块内部声明,并使用static修饰。
在多文件程序中,可以在一个文件中(且只能在一个文件中 )定义一个外部变量。使用该变量的其他文件必须使用关键字extern声明它。
静态的局部变量,该变量只在该代码块中可用,但他在改代码块不处于活动状态下依然存在,另外如果初始化了静态局部变量,则只在启动时进行一次
初始化,以后再调用函数时不会像自动变量那样初始化。