关键字解析——static

在C、C++、Java等语言中,都有 static关键字,作为一个英语单词来讲,这个词的基本含义是“静态的、固定的”。顾名思义,这个词是用来声明静态对象的。
1、C语言中的 static
C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。
由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过 extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的 extern声明)。
static则可以限定变量或函数为静态存储。如果用 static限定外部变量与函数,则可以将该对象的作用域限定为被编译源文件的剩余部分。通过 static限定外部对象,可以达到隐藏外部对象的目的。因而, static限定的变量或函数不会和同一程序中其它文件中同名的相冲突。如果用 static限定内部变量,则该变量从程序一开始就拥有内存,不会随其所在函数的调用和退出而分配和消失。[1]

2、C++中的 static
由于C++基本上兼容C语言的特性,为了区别,将C中继承过来的 static用法称为文件静态(file static)。C++不赞成文件静态,已经用未命名的命名空间代替它。

 

参考:
[1] Brian W. Kernighan, Dennis M. Ritchie.(徐宝文,李志 译,尤晋元 校) C程序设计语言(第二版·新版)。
[2] Stanley B. Lippman, Josee Lajoie, Barbara E. Moo. (李师贤 蒋爱军 李晓勇 林瑛 译)C++ Primer中文版。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值