我在单片机程序里写了个C子函数,里面要调用全局变量,耗用单片机的内存,现在我将这个全局变量更改成子函数内的static变量,但是一样耗用单片机内存,这个static变量和全局变量是一样的吗?
就是说,我声明1字节的全局变量时系统内存的消耗是12byte(假设),当我把这个全局变量改成局部变量的时候,系统内存的消耗还是12byte?
你好,其实是这样的,我在给51单片机编程,用的是keilC51软件,不清楚的是,在系统main()函数释放子函数的时候,子函数中的的局部变量会消失吗?为什么在编程的过程中,声明局部变量和声明全局变量一样,都消耗系统总内存啊?
就是说,我声明1字节的全局变量时系统内存的消耗是12byte(假设),当我把这个全局变量改成局部变量的时候,系统内存的消耗还是12byte?
系统main()函数释放子函数的时候,子函数中的的局部变量会消失(静态变量除外),在编程的过程中,声明局部变量和声明全局变量消耗系统总内存要视具体而定,可能相同,可能不同;
追问你说“声明局部变量和声明全局变量消耗系统总内存要视具体而定,可能相同,可能不同”,能不能给我举个“不同”的例子啊,我现在看到的全部都是“相同”的,所以我奇怪啊,声明局部变量也没办法减少内存的占用,有没有什么办法降低内存占用?先谢谢了。