static的一些小结

C中面向过程
1.静态全局变量,在全局data区域分配内存,未初始化自动初始化(内置构造函数或者自定义初始化0),只对当前文件可见。
2.静态局部变量,在全局data区域分配内存,在第一次声明处就要初始化,以后调用都不再进行初始化(内置构造函数或自定义初始化0),存在时间直到程序结束,但随着作用域结束(所以不能声明过多静态局部变量?)
3.静态函数,只在声明文件中可见,不会与其他文件同名函数冲突。
4.全局data区域在linux下是否可以通过ulimit修改?
C++中面向对象
1.静态数据成员,只有一份拷贝,被所有对象共用,可以更新,既可以被类访问也可以被对象访问,在全局data区域分配内存,其定义要分配空间,所以不能在类声明中定义,支持访问控制,不与全局变量冲突。
2.静态成员函数,属于类本身,没有this指针参数,无法访问对象变量和方法,定义不能指定关键字static。