以下代码是关于push函数的内容,请问有谁知道吗?

以下是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;这句++=怎样执行的,忘了
}

肥皂起泡泡
浏览 208回答 2
2回答

潇湘沐

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

汪汪一只猫

没说清啊!s.base是什么类型的?是整型还是(char *)?if(s.top-s.base>=stacksize)可以不用>=,但不能用'=', 要用'=='*s.top++=e是这样执行:((*(s.top))++)=e,没有复合赋值'++='
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript
Java