#include "stack.h" /* スタック操作用ヘッダファイル読み込み */ /* デバッグプリント用のprintf()のため */ #include <stdio.h> int sp = 0; /* スタックポインタ */ double val[MAXVAL]; /* 値のスタック */ /* push: fをスタックにプッシュする */ void push(double f) { if (sp < MAXVAL) { printf("push sp:%d val:%g\n", sp, f); val[sp++] = f; } else { printf("error: stack full, can't push %g\n", f); } } /* pop: スタックから一番上の値をポップして返す */ double pop(void) { if (sp > 0) { double f = val[--sp]; printf("pop sp:%d val:%g\n", sp, f); return f; } else { printf("error: stack empty\n"); } return 0.0; }