c语言中const、static关键字的用法?

发布网友 发布时间:2022-04-19 14:26

我来回答

1个回答

热心网友 时间:2023-07-16 21:17

C语言关键词学习总结

一、static关键字

1、局部变量

生命周期:原先存在栈中,生命周期语句执行完毕便结束了。现在存放到静态数据区,生命周期持续到整个程序执行结束。

作用域:并没有改变作用域,还是仅限于该语句块。并且只在初次运行的时候进行初始化,下次调用时它的值是上一次函数调用结束之后的值。每次调用后值会被保存。

2、全局变量

对干一个全部变量,既可以在本源文件中被访问到,也可以在同一个工程的其它源文件中被访问(只需用extern进行声明即可)。如果加上static,*该全局变量的作用域范围,由原来的整个工程可见变为本源文件可见。

二、const关键字

1、用const修饰一般变量

用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。

2、const与指针搭配使用

用const修饰的变量必须在声明时进行初始化(用来修饰函数的形参除外)。

两个基础概念: 指针常量和常量指针。

指针常量:即指针本身的值是不可改变的,而指针指向的变量的值是可以改变的;

常量指针:即指针指向的变量的值是不可改变的,而指针本身的值是可以改变的。

三、register关键字用法

register: 这个关键字请求编译器尽可能的将变量存在CPU 内部寄存器中而不是通过内存寻址访问以提高效率。注意是尽可能,不是绝对。寄存器其实就是一块一块小的存储空间,只不过其存取速度要比内存快得多。数据从内存里拿出来先放到寄存器,然后CPU 再从寄存器里读取数据来处理,处理完后同样把数据通过寄存器存放到内存里,CPU 不直接和内存打交道。

四、auto关键字

用于声明变量的生存期为自动,所有的变量默认就是auto的。

五、inline内联函数

调用函数时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(inlinefunction),又称内嵌函数或内置函数。

优点:内联函数可以有效避免函数调用的开销,程序执行效率更高。

缺点:如果被声明为内联函数的函数体非常大,则编译器编译后程序的可执行码将会变得很大。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com