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

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

静态变量

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

语法:

static data_type var_name = var_value;

注册变量

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

语法:

register data_type var_name = var_value;

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

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程