有没有大神帮忙看下有什么逻辑错误

void trans(char *exp,char postexp[])
{

LiStack *op;
InitStack1(op);


int i=0;
ElemType e;
Push1(op,'=');
while(*exp!='\0')
{
    if(!InOp(*exp))
    {   while(*exp>='0'&&*exp<='9')
        {
            postexp[i++]=*exp;
            exp++;
        }
        postexp[i++]='#';
    }
    else
        switch(Precede(GetTop1(op,e),*exp))
        {
           case -1:
              Push1(op,*exp);
              exp++;
              break;
           case 0:
               Pop1(op,e);
               exp++;
   break;
           case 1:
               postexp[i++]=GetTop1(op,e);
               break;
    } 
}
while(GetTop1(op,e)!='=')

{
    postexp[i++]=GetTop1(op,e);
}
postexp[i]='\0';

}

while(*exp ++ != '\0') //在这里自增 代码清晰。

这样写,把其它的 exp++; 给删除了。。。

代码不全。。。

InitStack1(op); 这个函数初始化成功没有??

Push1(op,'='); 这个操作如何??