大话嵌入式之一---变量


动态变量也就是很多书中提到的局部变量,是函数运行过程中申请的,生命周期随着函数的开始而诞生,随着函数的结束而消亡;是动态存在的。程序分配栈空间给局部变量使用;由于程序或者任务的栈空间的大小限制,所以不建议在函数中申请大量的局部变量,如大空间的数组;

静态变量,可以包含有局部静态变量用static修饰和全局变量,这种变量一旦定义不会消亡,和函数的生命周期无关;两种静态变量只是作用范围不一样,局部静态变量只为某个函数服务,而全局变量为整个工程里的所有函数服务;因此也有书本会说static会定义变量的作用域。程序分配堆空间给静态变量使用。静态变量的空间申请有两种方式,一种是普通的定义方式由编译器自行分配,还有一种通过malloc的方式,malloc会以void *的方式返回分配空间的首地址。为什么会以void *的方式返回,主要是因为void *可以接收任何类型的指针变量,在使用时只需要进行强制类型转换就可以。使得程序在编写时不需要考虑类型匹配的问题;malloc的方式分配后,由于是静态变量,因此程序结束不会消除,必须要通过free释放申请的空间,由于堆空间也是有限的,因此malloc后,需要在功能结束的位置执行free;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值