局部变量,和全局变量的存储空间不一样的。局部变量放在动态储存区,全局变量放在静态储存区。当编写的代码多的时候,全局变量很难得到保护,可能每个函数都调用到。具体的,你可以看下这个: http://cbhuang1987.blog.163.com/blog/static/13272812720091016103118344/
主要是作用域不同,我理解是生命周期不通!有些变量只用一会儿就没用了,你定义成全局就浪费内存资源
顾名思义,全局变量是整个环节都能使用到的变量;局部变量,只有小范围用到的变量。如果将局部使用的变量定义为全局变量不仅会造成代码上阅读障碍并且影响了性能。
■静态存储器
静态存储器包含唯读的ROM、可程式化的ROM、静态随机存取存储器(SRAM)以及快闪存储器(Flash)。一完整的平台需要有初始的程式(Boot Code),以初始化系统周边的设定,完成后才能载入OS Kernel,而初始程式就可放在ROM或是Flash里。当平台上有新加入或移除的周边,则需修改初始程式,修改完之后透过烧录的方式将初始程式重置于ROM或是Flash里。ROM与Flash的主要用途是以读为主,两者的资料写入时间较长,不适合用于大量资料的存取。静态随机存取存储器由于存取速度快,常被运用于系统中的快取存储器(Cached Memory),由于SRAM 中一位元的储存细胞元(Memory Cell)需使用四个电晶体,如(图二)所示,非常占用面积,消耗功率的情形也较为严重,所以系统上采用的SRAM 大小也就特别受到限制。■动态存储器
动态存储器所指的也就是动态随机存取存储器,储存一位元的资料只需要一电容,当列解码线(RAS)与行解码线(CAS)动作时,可令MOSFET接通允许电容电压被读取或写入。由于电容的电压储存时有漏电现象或传输时的耗损,除了在写入与读出时都经过放大之外,每一列的所有位元经过一段时间就必须将资料读出后再写入一次,这个工作称为DRAM的更新,(图三)为动态随机存取存储器的存取控制。DRAM最大的优势是容量大,约为SRAM的四倍,不但省电又比SRAM便宜,但DRAM需重复更新以及预充电的设计,导致使用上的不方便,也影响到存取的时间,因此从使用效率上来看也就比不上SRAM。