用STM32写程序,局部数组变量用堆好还是栈好?

[复制链接]
4359|4
 楼主| z_no1 发表于 2011-9-26 16:34 | 显示全部楼层 |阅读模式
现在写的程序在各个子程序里用了局部数组,最简单的就是按局部变量直接申请,
uint8_t t_temp[512];
char s[] = "abc"; 栈
或者p1 = (char *)malloc(10);  堆
在用STM32 MDK 裸奔的情况下,是不是用栈还方便些?数组肯定是只在内部使用,堆和栈是不是都只能放在片内RAM里?
computer00 发表于 2011-9-26 16:53 | 显示全部楼层
裸奔的话,建议还是直接用栈比较好些……
vidanet 发表于 2011-9-29 09:53 | 显示全部楼层
裸奔的话,建议还是直接用栈比较好些……
computer00 发表于 2011-9-26 16:53


请教一个问题,堆是否是操作系统实现的呢? 也就是说没有操作系统的话就没有堆这个概念,动态开辟空间malloc函数这都是操作系统实现的吧?
 楼主| z_no1 发表于 2011-9-29 15:02 | 显示全部楼层
应该不是的,我没用OS,也可以用malloc函数.这个应该是库函数
 楼主| z_no1 发表于 2011-9-30 13:54 | 显示全部楼层
这个问题是51到ARM的人会遇到的,不知道51有堆么?可能由库函数在外部RAM里能做。很少用到,一般要用数组都是做成全局变量,51的栈更是只有几十个字节。只有到了ARM,才能在栈里分配大容量的数组做局部变量,毕竟这样程序可维护性好很多。用堆还是不太方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

2659

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部