同一个函数调用5次为何不行?请教

2019-03-24 18:43发布

如图:调用5次的有2个不执行,调用4个的全部能执行,为什么?
#include <reg52.h>
sbit P13  = P1^3;

void wf()
  {  while(1){
       P0= 0; break ;
       }}
void main()     
{  while(1){
        if(!P13){
      wf();
    wf();
    wf();
    wf();
    wf();         
       }}}
20130104gxjcjjxev1dafofi.jpg
20130104rhwteqz0tnwmsn0m.jpg 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
ltbytyn
2019-03-25 18:48
byq.JPG
不是程序问题,是因为编译器会优化掉认为重复、无用的代码.
选用不同优化等级会对影响到编译的HEX文件大小有。但不会对结果造成影响。等级越高优化效果越强。
你把优化等级调到8(默认是8)以下试试,同时观察HEX的大小就会有发现。同时也会得到你想要的结果(执行5次调用)。

[ 本帖最后由 ltbytyn 于 2013-1-6 09:40 编辑 ]

一周热门 更多>