c语言变量的存储类别

C语言对变量的存储类型说明有四种:自动变量(auto)、静态变量(static)、寄存器变量(register)、外部变量(extern)。

自动变量属于动态存储方式。在函数中定义的自动变量,只在该函数内有效;函数被调用时分配存储空间,++调用结束就释放++。

静态存储

静态变量属于静态存储。在程序执行过程中,即使所在函数++调用结束也不释放。++换句话说,在程序执行期间,静态变量始终存在。

定义静态变量但不初始化,则自动赋以0(整型和实型)或'\0'(字符型)++且每次调用它们所在的函数时,不再重新赋初值,只是保留上次调用结束时的值++ 。(只初始化一次,不初始化默认值为0)

当需要保留函数上一次调用结束时的值或者变量只被引用而不改变其值时,才使用静态变量。

寄存器变量

一般情况下,变量的值都是存储在内存中的。为提高执行效率,C语言允许将局部变量的值存放到寄存器中,这种变量就称为寄存器变量。其定义格式为:

register数据类型 变量表;

注意:

(1)只有局部变量才能定义成寄存器变量,即全局变量不行。

(2)允许使用的寄存器数目是有限的,不能定义任意多个寄存器变量。

外部变量

外部变量属于静态存储方式。有时需要用extern来声明外部变量,以扩展本文件

外部变量的作用域。其定义格式为:

extern 数据类型 外部变量表;

相关推荐
lhbweilai6 小时前
分析FreeRTOS内核对象API的源码实现(四)
c语言·stm32·单片机
inrichtt9 小时前
第八课时:SPI总线揭秘:四线全双工通信的奥
c语言·数据结构·stm32·单片机·嵌入式硬件
wuminyu13 小时前
JMM学习总结:深入理解happens-before关系
java·linux·c语言·jvm·c++
Zwawa15 小时前
让电机走到指定位置:编码器位置环 PID
c语言·单片机·嵌入式
fensnote16 小时前
西门子 S7 PLC 内部寄存器读写 Demo(C 语言)
c语言·开发语言
Logic10118 小时前
C语言/数据结构位运算题解:异或XOR找出被挑选一次的果子编号——只出现一次的数字
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度
dear_bi_MyOnly19 小时前
栈和队列:从原理到应用全解析
c语言·开发语言·c++·学习·分类
从小白到软工20 小时前
4-3 项目-学生成绩管理系统(上)
c语言·开发语言·数据结构·经验分享·ai编程
Code_Solitude21 小时前
c语言:指针(3)+冒泡排序
java·c语言·算法