静态变量(内部、外部) 全局变量 差别
|
外部静态变量 |
内部静态变量 |
全局变量 |
作用域 |
只在定义它的源文件有效,同一程序的其他源文件不能使用 |
所在源文件,局部可用(所定义的{}内有效) |
默认为所在源文件;若其他文件需要使用,用extern声明 |
生命期 |
从定义到程序结束 |
从定义到程序结束 |
从定义到程序结束 |
初始化 |
自动赋值为0 |
自动赋值为0 |
自动赋值为0 |
注意:
1)在include头文件时,只需要当成将头文件中的代码放到引用文件中,同时,一个类的一个方法只有一份内存,与Java中相同。
2)所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问,如果加了static,就会对其它源文件隐藏。