首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MikroC中嵌套调用的限制是什么?

在MikroC中嵌套调用的限制是什么?
EN

Stack Overflow用户
提问于 2018-09-24 07:43:47
回答 2查看 354关注 0票数 1

我想知道嵌套的调用限制是什么。我正在使用MikroC的事先知情同意编程。

它说有以下限制,

用于PIC的mikroC PRO将非递归嵌套调用的次数限制为:

  • 给PIC12一家打了8个电话,
  • 给PIC16一家打了8个电话,
  • 16次呼吁PIC16增强家庭。
  • 为PIC18一家打了31次电话。

是外部函数调用限制,还是其他函数或循环调用限制?什么嵌套电话?如何在代码中计数,以确定它是否令人兴奋?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-24 09:15:38

例如,PIC16没有任何中断:

这个代码很好:

代码语言:javascript
复制
/* prototypes */
void func1 (void);
void func2 (void);
void func3 (void);
void func4 (void);
void func5 (void);
void func6 (void);
void func7 (void);
void func8 (void);

void func1(void) {
    /* do something here */
}
void func2(void) {
    /* do something here */
}
void func3(void) {
    /* do something here */
}
void func4(void) {
    /* do something here */
}
void func5(void) {
    /* do something here */
}
void func6(void) {
    /* do something here */
}
void func7(void) {
    /* do something here */
}
void func8(void) {
    /* do something here */
}

int main {
    func1();
    func2();
    func3();
    func4();
    func5();
    func6();
    func7();
    func8();
}

此代码不太好:

代码语言:javascript
复制
/* prototypes */
void func1 (void);
void func2 (void);
void func3 (void);
void func4 (void);
void func5 (void);
void func6 (void);
void func7 (void);
void func8 (void);

  void func1(void) {
    func2();
}
void func2(void) {
    func3();
}
void func3(void) {
    func4();
}
void func4(void) {
    func5();
}
void func5(void) {
    func6();
}
void func6(void) {
    func7();
}
void func7(void) {
    func8();             /* here the stack reached 8. this will cause a problem */
}
void func8(void) {
    /* do something here */
}

int main {
    func1();
} 
票数 3
EN

Stack Overflow用户

发布于 2019-01-25 13:34:22

8位PICmcu的硬件调用堆栈数量有限.此堆栈包含函数调用和中断的返回地址。这个堆栈不是像C这样的高级语言的参数堆栈,因为这个堆栈是硬件的,它可以在一个周期内将整个返回地址提供给CPU。太多的函数调用也不可能导致堆栈悄悄损坏其他内存,如BSS段或传统上的堆。

用于非传统堆栈模型的其他副作用。看一看这篇关于微论坛的文章。8位PICmcu的秘密武器

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52474721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档