《[免费下载 c语言深度解剖[1]》

下载本书

添加书签

[免费下载 c语言深度解剖[1]- 第5节


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
不过其存取速度要比内存快得多。进水楼台先得月嘛,它离 
CPU很近, 
CPU一伸手就拿到
数据了,比在那么大的一块内存里去寻找某个地址上的数据是不是快多了?那有人问既然
它速度那么快,那我们的内存硬盘都改成寄存器得了呗。我要说的是:你真有钱!

1。2。2,使用 
register修饰符的注意点
虽然寄存器的速度非常快,但是使用 
register修饰符也有些限制的:register变量必须是
能被 
CPU寄存器所接受的类型。意味着 
register变量必须是一个单个的值,并且其长度应小
于或等于整型的长度。而且 
register变量可能不存放在内存中,所以不能用取址运算符 
“&”
来获取 
register变量的地址。


1。3,最名不符实的关键字static
不要误以为关键字 
static很安静,其实它一点也不安静。这个关键字在 
C语言里主要有
两个作用,C++对它进行了扩展。

1。3。1,修饰变量
第一个作用:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。

静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用 
extern声明也没法
使用他。准确地说作用域是从定义之处开始,到文件结尾处结束,在定义之处前面的那些
代码行也不能使用它。想要使用就得在前面再加 
extern 
***。恶心吧?要想不恶心,很简单,
直接在文件顶端定义不就得了。

静态局部变量,在函数体里面定义的,就只能在这个函数里用了,同一个文档中的其他
函数也用不了。由于被 
static修饰的变量总是存在内存的静态区,所以即使这个函数运行结
束,这个静态变量的值还是不会被销毁,函数下次使用时仍然能用到这个值。 


static 
int 
j; 
voidfun1(void) 
{ 


static 
inti 
= 
0; 


i++; 
} 
voidfun2(void) 
{ 


j= 
0; 


j++; 
} 
intmain() 
{ 


for(k=0; 
k
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架