C语言的关键字用法

来源:互联网 发布:天涯明月刀数据17173 编辑:程序博客网 时间:2024/06/05 05:52

一、关键字register

(1)register的作用:

register请求编译器尽可能地让变量的值保存到CPU的内部寄存器中,从而省去CPU从内存中捕获数据的时间,提高程序的运行效率。

*注释:尽可能是因为CPU中的寄存器资源有限,不能让过多的变量都存储到寄存器中。

(2)何时使用register关键字

当我们频繁使用某一个变量时我们可以将该变量定义为register。

(3)register使用的注意事项

①register只能定义局部变量

原因:全局变量能被多个进程访问,当在某个进程定义了一个register全局变量,其他的进程将无法访问该全局变量。

②不能用&操作获取register变量的地址

原因:register定义的变量不是在内存中存储的,是在CPU的内部寄存器中存放的。

③register定义的变量一定是CPU所接受的数据类型。

二、关键字static

(1)static的作用:

static可以修饰局部变量、全局变量和函数。

①static修饰局部变量时,该变量成为静态局部变量,static修饰局部变量可以延长该局部变量的生命周期,该修饰的局部变量在程序运行结束后释放。

②static修饰全局变量时,该全局变量对所在文件可见,对其他文件不可见。

③static修饰函数时,该函数只能被函数所在文件调用,不能被其他文件调用。

*注释:static变量存放在数据区的静态数据区,无初始化时系统默认为其初始化为0。

(2)何时使用static关键字

①当想使局部变量在本函数中使用后不被释放且只在该函数内可见时用static修饰该变量。

    问题:为什么不在全局定义该变量?

    原因:全局变量对所有可见,使用时不安全。

②当想使某文件中的全局变量不被其它文件所访问时可以使用static修饰该变量。这可以防止其他文件对该全局变量进行操作。

三、关键字extern

(1)extern的作用:

用于外部声明引用,声明的变量是在外部文件中定义的。

(2)extern的注意事项:

①使用extern声明外部变量时要加上该变量的数据类型,语句末尾不能省去“;”,例如:extern int a;  。

②extern只能声明全局变量。

四、关键字const

(1)const的作用:

const用于修饰变量,被修饰的变量为只读变量。

(2)const的使用注意事项:

①使用const修饰变量时一定注意要初始化。

②const修饰的变量对应的空间的值可以修改,但不能通过变量名进行修改对应空间的值。

例如:const int a  = 5; a = 6;  。

(3)何时使用const关键字

在函数的形参中使用const可避免函数对实参的值进行修改。

五、关键字typedef

(1)typedef的作用:

用来为复杂的声明定义简单的别名(与宏定义有差异)

(2)使用typedef的优点

①提高了代码的移植性

②把复杂的声明定义为简单的别名,从而提高了编码效率。

③对变量起到注释的作用,方便其他人阅读代码。


0 0