微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

语法:

static data_type var_name = var_value;

注册变量

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

语法:

register data_type var_name = var_value;

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐