热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

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

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

语法:

static data_type var_name = var_value; 

注册变量

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

语法:

register data_type var_name = var_value; 

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

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

推荐阅读
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 记录一次es集群load过高问题(待更新)
    toptop-H-ppid按shiftp以cpu来排序按shiftm以memory来排序将10进制线程pid转为16进制printf%x\npidjstackjstackP ... [详细]
  • 本文总结了AAC解码的过程,并介绍了几个解码版本,包括FAAD/2、FFmpeg自带的解码器以及opencore的opencore-aacdec。作者选择了FAAD作为解码器,并通过编译和运行测试确认解码无问题。然而,作者在输出过程中遇到了时长增加一倍的问题,通过修改代码实现了单通道输出,并解决了时长异常的问题。最终,解码后的声音质量接近无损。 ... [详细]
  • 计算机通过镜子测试,科技 _ 你的宠物能通过“镜子测试”吗?“照镜子”揭示了自我意识的发展规律...
    人类并不是唯一能够在镜子中认出自己的生物,但拥有自我意识的物种并不多,只有寥寥可数的几种。自我意识是如何产生的?其作用又是什么࿱ ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • 本文介绍了在使用vue和webpack进行异步组件按需加载时可能出现的报错问题,并提供了解决方法。同时还解答了关于局部注册组件和v-if指令的相关问题。 ... [详细]
author-avatar
cssic_630
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有