- int ip = 0; int sp = -1;
- int stack[256]; // 用数组或适合此处的其它结构
- // 其它C代码
现在如果我们想入栈一个值,我们先增加栈顶指针,接着设置当前sp处的值(我们刚刚增加的)。注意:这两步的顺序很重要!
- // 压栈5
- // sp = -1 sp++; // sp = 0
- stack[sp] = 5; // 栈顶现在变为5
所以,在我们的执行函数eval()里,可以像这样实现push出栈指令:
- void eval(int instr) { switch (instr) {
- case HLT: { running = false;
- break; }
- case PSH: { sp++;










