[免费下载 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