PIC 单片机 中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法

PICC 基本上符合 ANSI 标准,除了一点:它不支持函数的递归调用。其主要原因是因

 

为 PIC 单片机特殊的堆栈结构。在前面介绍 PIC 单片机架构时已经详细说明了 PIC 单片机

 

中的堆栈是硬件实现的,其深度已随芯片而固定,无法实现需要大量堆栈操作的递归算法;

 

另外在 PIC 单片机中实现软件堆栈的效率也不是很高,为此,PICC 编译器采用一种叫做“静

 

态覆盖”的技术以实现对    C  语言函数中的局部变量分配固定的地址空间。经这样处理后产

 

生出的机器代码效率很高,按笔者实际使用的体会,当代码量超过 4K 字后,C 语言编译出

 

的代码长度和全部用汇编代码实现时的差别已经不是很大(<10%),当然前提是在整个  C

 

代码编写过程中须时时处处注意所编写语句的效率,而如果没有对 PIC 单片机的内核结构、

 

各功能模块及其汇编指令深入了解,要做到这点是很难的。

    原文作者:递归算法
    原文地址: https://blog.csdn.net/autumn20080101/article/details/8658219
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞