编程开发 > C/C++ > 文章内容

C语言入门教程:寄存器变量

2016-4-20编辑:ljnbset

寄存器变量

上述各类变量都存放在存储器内, 因此当对一个变量频繁读写时,必须要反复访问内存储器,从而花费大量的存
取时间。为此,C语言提供了另一种变量,即寄存器变量。这种变量存放在 CPU的寄存器中,使用时,不需要访问内
存,而直接从寄存器中读写,这样可提高效率。寄存器变量的说明符是 register。对于循环次数较多的循环控制变
量及循环体内反复使用的变量均可定义为寄存器变量。

[例5.16]求Σ200i=1imain()
{
register i,s=0;
for(i=1;i<=200;i++)
s=s+i;
printf("s=%d\n",s);
}


本程序循环 200次,i和 s都将频繁使用,因此可定义为寄存器变量。
对寄存器变量还要说明以下几点:


1. 只有局部自动变量和形式参数才可以定义为寄存器变量。因为寄存器变量属于动态存储方式。凡需要采用静态存储
方式的量不能定义为寄存器变量。
2. 在Turbo C,MS C等微机上使用的C语言中, 实际上是把寄存器变量当成自动变量处理的。因此速度并不能提高。
而在程序中允许使用寄存器变量只是为了与标准C保持一致。3. 即使能真正使用寄存器变量的机器,由于CPU 中寄
存器的个数是有限的,因此使用寄存器变量的个数也是有限的。
内部函数和外部函数

函数一旦定义后就可被其它函数调用。 但当一个源程序由多个源文件组成时, 在一个源文件中定义的函数能否
被其它源文件中的函数调用呢?为此,C语言又把函数分为两类:

一、内部函数

如果在一个源文件中定义的函数只能被本文件中的函数调用,而不能被同一源程序其它文件中的函数调用,这种
函数称为内部函
数。定义内部函数的一般形式是: static 类型说明符 函数名(形参表) 例如:
static int f(int a,int b) 内部函数也称为静态函数。但此处静态static 的含义已不是指存储方式,而是指对函
数的调用范围只局限于本文件。 因此在不同的源文件中定义同名的静态函数不会引起混淆。

二、外部函数

外部函数在整个源程序中都有效,其定义的一般形式为: extern 类型说明符 函数名(形参表) 例如:
extern int f(int a,int b)如在函数定义中没有说明 extern或static则隐含为extern。在一个源文件的函数中调
用其它源文件中定义的外部函数时,应 用 extern说明被调函数为外部函数。例如:

F1.C (源文件一)
main()
{
extern int f1(int i); /*外部函数说明,表示f1函
数在其它源文件中*/
……
}
F2.C (源文件二)
extern int f1(int i); /*外部函数定义*/
{
……
}

C语言入门教程:静态变量-静态全局变量

热点推荐

登录注册
触屏版电脑版网站地图