引入问题:如何初始化全局变量和静态变量?
汇编指令中没有看到全局变量和静态变量的初始化,
就会很浪费
copy
Flash包括数据段和程序段:
Copy到内存的什么地址
看这条指令怎么执行:
一样的分配和初始化
memset
还有其他的变量:
一万个初始值为零的变量
全局变量和局部变量初始值
1.全局int变量(包括有static前缀的)未初始化, 默认值是0。2.局部int变量未初始化,默认值未知。(除了加static 前缀的局部变量,因为此时的局部变量是放在静态存储区内的,跟全局变量一样)
总结
有初始值的全局变量和静态变量,用copy函数,从flash中保存到内存;没有初始值或者初始值为0的全局变量和静态变量,直接用memset,设置为0。
注
可读可写区域是变量所在的区域,内存。