Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376389
  • 博文数量: 124
  • 博客积分: 2911
  • 博客等级: 少校
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 15:57
文章分类

全部博文(124)

文章存档

2012年(6)

2011年(26)

2010年(92)

我的朋友

分类: C/C++

2010-06-10 15:16:00

转载请注明出处

类型

功能

全局静态变量

l   存储在静态区。

l   变量内容持久化:程序的整个运行期间一直占有,直至结束。用来存储保留值。

l   避免跨文件命名冲突: 只在文件内编译有效,可避免不同文件间的命名冲突。

l   跨文件的访问:在一个源文件里定义的static变量,在另一个源文件里不能再通过extern访问;如果要访问,则在第一个源文件中定义指向该静态变量的指针,在第二个源文件中使用extern引用该指针。

局部静态变量

l   变量内容持久化: 下次调用该函数时可继续使用(使用全局变量也可以,但全局变量众所周知是不被推荐的)

静态函数

l   存储在静态区,直到退出应用程序实例。避免了调用函数时的压栈出栈,速度较快。

l   避免跨文件命名冲突: 只在文件内编译有效,可避免不同文件间的命名冲突。

静态成员变量

l   存储在静态区。

l   数据共享:所有类对象共享一份该成员变量(非静态成员变量在每个类对象中都有自己的拷贝。静态成员变量被当作是类的成员,在程序中也只有一份拷贝)

l   遵从public/protected/private访问规则。

l   无须产生类对象,可直接操作该变量。使用A.staticV或者A::staticV访问。

l   不能在声明时同时进行定义。

静态方法

l   方法共享:所有类对象共享该方法(普通方法通过this指针指向自己所处对象,静态方法没有this指针)。使用A::staticFunc(para1,para2)访问。

l   只能访问【静态成员】(变量/函数):无法访问【普通成员】(变量/函数)。【普通成员】可以访问静态成员。

静态类

l   C#Java(内部类)JS中的概念。不管如何定义,“静态”都包含“无法实例化、共享”之意。

阅读(1599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~