content_views"
class="htmledit_views">
在C、C++、Java等
class="tags" href="/tags/YuYan.html" title=语言>语言中
c;都有
static关键字
c;作为一个英语单词来讲
c;这个词的基本含义是“静态的、固定的”。顾名思义
c;这个词是用来声明静态对象的。
1、C
class="tags" href="/tags/YuYan.html" title=语言>语言中的
static
C
class="tags" href="/tags/YuYan.html" title=语言>语言程序可以看成由一系列外部对象构成
c;这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外
c;因此可以在许多函数中使用。由于C
class="tags" href="/tags/YuYan.html" title=语言>语言不允许在一个函数中定义其它函数
c;因此函数本身只能是“外部的”。
由于C
class="tags" href="/tags/YuYan.html" title=语言>语言代码是以文件为单位来组织的
c;在一个源程序所有源文件中
c;一个外部变量或函数只能在某个文件中定义一次
c;而其它文件可以通过
extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的
extern声明)。
而
static则可以限定变量或函数为静态
存储。如果用
static限定外部变量与函数
c;则可以将该对象的作用域限定为被编译源文件的剩余部分。通过
static限定外部对象
c;可以达到隐藏外部对象的目的。因而
c;
static限定的变量或函数不会和同一程序中其它文件中同名的相冲突。如果用
static限定内部变量
c;则该变量从程序一开始就拥有内存
c;不会随其所在函数的调用和退出而分配和消失。[1]
2、C++中的
static
由于C++基本上兼容C
class="tags" href="/tags/YuYan.html" title=语言>语言的特性
c;为了区别
c;将C中继承过来的
static用法称为文件静态(
file stati
c)。C++不赞成文件静态
c;已经用未命名的命名空间代替它。
参考:
[1] Brian W. Kernighan, Dennis M. Rit
chie.(徐宝文
c;李志 译
c;尤晋元 校) C程序设计
class="tags" href="/tags/YuYan.html" title=语言>语言(第二版·新版)。
[2] Stanley B. Lippman, Josee Lajoie, Barbara E. Moo. (李师贤 蒋爱军 李晓勇 林瑛 译)C++ Primer中文版。