#include <stdio.h>
#include <stdlib.h>
#define maxn 11
#define T int
int stack[maxn];
int TOP = -1; // 栈顶指针
void pop() {
    TOP--;
}
void push(T buf) {
    stack[++TOP] = buf;
}
int empty() {
    return TOP == -1;
}
void clear() {
    TOP = -1;
}
 
int size() {
    return TOP + 1;
}
T top() {
    return stack[TOP];
}
 
int main() {
    clear();
    T buf;
    buf = 1;
    push(buf);
    printf("stack top element is %d\n",top());
    printf("stack empty is %s\n",empty()==-1?"true":"false");
    printf("stack size is %d\n",size());
    pop();
    printf("stack size is %d\n",size());
    return 0;
}