C中静态变量和寄存器变量的区别

C中静态变量和寄存器变量的区别

静态变量

静态变量具有保留其值的属性,即使它们超出了它们的范围! 因此,静态变量在其先前的作用域中保留其先前的值,并且不会在新的作用域中再次初始化。

语法:

static data_type var_name = var_value;
C++

注册变量

寄存器的访问速度比内存快,因此可以使用 register 关键字将 C 程序中最常用的变量放入寄存器中。关键字 register 向编译器提示可以将给定变量放入寄存器中。是否将其放入寄存器是编译器的选择。通常,编译器自己进行优化并将变量放入寄存器中。

语法:

register data_type var_name = var_value;
C++

C中静态变量和寄存器变量的区别:

静态变量 寄存器变量
使用的关键字是—— static 使用的关键字是—— register
静态变量可能是内部变量或外部变量,具体取决于声明的位置。 寄存器变量在函数内部声明。
内部静态变量类似于自动变量或局部变量。而外部静态变量类似于全局变量。 寄存器变量类似于自动或局部或内部变量。
执行速度比寄存器变量慢。 寄存器变量可以更快地执行程序。
内部静态变量在特定函数中处于活动状态(可见性),外部静态变量在整个程序中处于活动状态。 寄存器变量仅在函数内有效。
内部静态变量在函数结束前一直处于活动状态(生命周期),而外部静态变量在整个程序中都处于活动状态。 寄存器变量在函数结束之前一直有效。
存储在初始化数据段中的静态变量。 寄存器变量存储在寄存器中。
静态变量存储在数据段的内存中。 在寄存器变量中,CPU 本身存储数据并快速访问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册