导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:函数调用[hcdg]

 *第5395篇: C51编程:函数调用

  
楼 主:hcdg 2002年10月10日16:10
 C51编程:函数调用
有这样一段程序:
void func1()
{
    ...
    if(...)
    {
        func2();
        func3();
    }
    ...
}
用的Keil C51编译器。
在执行时发现有时执行完func2()后,没有执行func3(),而是不可预知的跑道别的地方去
啦。对程序复位后,执行仍出现以上现象。
如果重新编译,则可以正确执行。
我认为原因可能有两个:
1、在调用func2()时,堆栈的空间不够用,这导致func2()执行完成后不知道返回到什么地
址啦。有个疑问是:有时调用func2()可以返回继续执行func3(),这样说明堆栈在调用
func2()时时够用的。
2、在用Keil C51编译代码时,每次生成的执行文件不一样。有没有这种可能我就不得而知
啦。

本来想用仿真器找找问题所在,不过实在是一头雾水,不知从何下手。


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:C51编程:急切求助93C46的读写!!!!

[下一篇主题]:初学者:0809  and mcs51