对于函数而言,仅仅为隐藏作用。
对于变量而言,
1、隐藏
2、可以保持变量内容的持久,因为static变量存储在静态存储区只在程序的刚开始完成初始化,唯一的一次初始化(即使在子函数中作静态变量)。若未赋值,则系统自动赋予0值。为自动局部变量不赋初值的话,其值不定。
当编译多个文件时,所有未加static前缀的全局变量和函数都具有可见性。如果 加上static,就会对其源文件隐藏。利用这一特性可以在不同文件定义同名的函数及同名变量。
存储在静态存储区的两种变量:
1、全局变量
2、static静态局部变量(static控制了其可见范围)这两种变量的默认初始化为0 。因为静态数据区内存中所有字节的默认值都是 0x00