以下是push函数int push(stack &s,char e){if(s.top-s.base>=stacksize) 这里为什么要> 不是=就好么{s.base=(char *)realloc(s.base,(stacksize+10)*sizeof(char));if(!s.base) exit(0);s.top=s.base+stacksize; 这句会不会多余,不是已经指向这里了么stacksize+=10;}*s.top++=e;这句++=怎样执行的,忘了}
2 回答

潇湘沐
TA贡献1816条经验 获得超6个赞
if(s.top-s.base>=stacksize) //如果CPU出现计算失误,s.top指向错误的位置,这句有容错功能.
s.top=s.base+stacksize; 这句不会多余,当出错时,这句把错误改回来,不出错时,这只是一个冗余,没有影响系统性能.
在做程序时,为了程序的可靠性,常用冗余的方法.
冗余有很多地方都用的上.比如用于检错的,CRC循环冗余检错码.

汪汪一只猫
TA贡献1898条经验 获得超8个赞
没说清啊!s.base是什么类型的?是整型还是(char *)?
if(s.top-s.base>=stacksize)可以不用>=,但不能用'=', 要用'=='
*s.top++=e是这样执行:((*(s.top))++)=e,没有复合赋值'++='
添加回答
举报
0/150
提交
取消