#include<stdio.h>#include<stdlib.h>#include<ctype.h>#define OK 1#define ERROR 0#define OVERFLOW -1#define EXPLENGTH 100#define STACK_INIT_SIZE 100#define STACKINCREMENT 30typedef int ElemType;typedef int Status;typedef struct{ ElemType* base; ElemType* top; int stacksize;}SqStack;SqStack* initStack(){ ElemType *t; SqStack *s; t=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType)); s->top=t; s->base=t; s->stacksize=STACK_INIT_SIZE; return s;}Status PopStack(SqStack* s,ElemType *e){ if(s->top==s->base) { return ERROR; }else{ e=*--(s->top); return OK; }}Status StackLength(SqStack *s){ return (s->top-s->base);}Status PushStack(SqStack* s,ElemType e){ if(s->top-s->base<=s->stacksize) { *s->top++=e; }else{ *s->top++=e; s->base=(ElemType*)malloc((s->stacksize+STACKINCREMENT)*sizeof(ElemType)); s->stacksize+=STACKINCREMENT; } return OK;}Status Gettop(SqStack *s,ElemType *e){ if(s->base==s->top) { return ERROR; }else{ e=s->top-1; return OK; }}Status ClearStack(SqStack *s){ s->top=s->base; s->stacksize=0; return OK;}Status DstroyStack(SqStack* s){ s->stacksize=0; free(s->top); free(s->base); return OK;}
I2luY2x1ZGU8c3RkaW8uaD4jaW5jbHVkZTxzdGRsaWIuaD4jaW5jbHVkZTxjdHlwZS5oPiNkZWZpbmUgT0sgMSNkZWZpbmUgRVJST1IgMCNkZWZpbmUgT1ZFUkZMT1cgLTEjZGVmaW5lIEVYUExFTkdUSCAxMDAjZGVmaW5lIFNUQUNLX0lOSVRfU0laRSAxMDAjZGVmaW5lIFNUQUNLSU5DUkVNRU5UIDMwdHlwZWRlZiBpbnQgRWxlbVR5cGU7dHlwZWRlZiBpbnQgU3RhdHVzO3R5cGVkZWYgc3RydWN0ewlFbGVtVHlwZSogYmFzZTsJRWxlbVR5cGUqIHRvcDsJaW50IHN0YWNrc2l6ZTt9U3FTdGFjaztTcVN0YWNrKiBpbml0U3RhY2soKXsJRWxlbVR5cGUgKnQ7CVNxU3RhY2sgKnM7CXQ9KEVsZW1UeXBlKiltYWxsb2MoU1RBQ0tfSU5JVF9TSVpFKnNpemVvZihFbGVtVHlwZSkpOwlzLT50b3A9dDsJcy0+YmFzZT10OwlzLT5zdGFja3NpemU9U1RBQ0tfSU5JVF9TSVpFOwlyZXR1cm4gczt9U3RhdHVzIFBvcFN0YWNrKFNxU3RhY2sqIHMsRWxlbVR5cGUgKmUpewlpZihzLT50b3A9PXMtPmJhc2UpCXsJCXJldHVybiBFUlJPUjsJfWVsc2V7CWU9Ki0tKHMtPnRvcCk7CXJldHVybiBPSzsJfX1TdGF0dXMgU3RhY2tMZW5ndGgoU3FTdGFjayAqcyl7CXJldHVybiAocy0+dG9wLXMtPmJhc2UpO31TdGF0dXMgUHVzaFN0YWNrKFNxU3RhY2sqIHMsRWxlbVR5cGUgZSl7CWlmKHMtPnRvcC1zLT5iYXNlPD1zLT5zdGFja3NpemUpCXsJCSpzLT50b3ArKz1lOwl9ZWxzZXsJCQkqcy0+dG9wKys9ZTsJICAgICAgICBzLT5iYXNlPShFbGVtVHlwZSopbWFsbG9jKChzLT5zdGFja3NpemUrU1RBQ0tJTkNSRU1FTlQpKnNpemVvZihFbGVtVHlwZSkpOwkgICAgICAgIHMtPnN0YWNrc2l6ZSs9U1RBQ0tJTkNSRU1FTlQ7CX0JcmV0dXJuIE9LO31TdGF0dXMgR2V0dG9wKFNxU3RhY2sgKnMsRWxlbVR5cGUgKmUpewlpZihzLT5iYXNlPT1zLT50b3ApCXsJCXJldHVybiBFUlJPUjsJfWVsc2V7CQllPXMtPnRvcC0xOwkJcmV0dXJuIE9LOwl9fVN0YXR1cyBDbGVhclN0YWNrKFNxU3RhY2sgKnMpewlzLT50b3A9cy0+YmFzZTsJcy0+c3RhY2tzaXplPTA7CXJldHVybiBPSzt9U3RhdHVzIERzdHJveVN0YWNrKFNxU3RhY2sqIHMpewlzLT5zdGFja3NpemU9MDsJZnJlZShzLT50b3ApOwlmcmVlKHMtPmJhc2UpOwlyZXR1cm4gT0s7fQo=
prog.c:1:18: warning: extra tokens at end of #include directive [-Wextra-tokens]
#include<stdio.h>#include<stdlib.h>#include<ctype.h>#define OK 1#define ERROR 0#define OVERFLOW -1#define EXPLENGTH 100#define STACK_INIT_SIZE 100#define STACKINCREMENT 30typedef int ElemType;typedef int Status;typedef struct{ ElemType* base; ElemType* top; int stacksize;}SqStack;SqStack* initStack(){ ElemType *t; SqStack *s; t=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType)); s->top=t; s->base=t; s->stacksize=STACK_INIT_SIZE; return s;}Status PopStack(SqStack* s,ElemType *e){ if(s->top==s->base) { return ERROR; }else{ e=*--(s->top); return OK; }}Status StackLength(SqStack *s){ return (s->top-s->base);}Status PushStack(SqStack* s,ElemType e){ if(s->top-s->base<=s->stacksize) { *s->top++=e; }else{ *s->top++=e; s->base=(ElemType*)malloc((s->stacksize+STACKINCREMENT)*sizeof(ElemType)); s->stacksize+=STACKINCREMENT; } return OK;}Status Gettop(SqStack *s,ElemType *e){ if(s->base==s->top) { return ERROR; }else{ e=s->top-1; return OK; }}Status ClearStack(SqStack *s){ s->top=s->base; s->stacksize=0; return OK;}Status DstroyStack(SqStack* s){ s->stacksize=0; free(s->top); free(s->base); return OK;}
^
//
1 warning generated.
/usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
clang: error: linker command failed with exit code 1 (use -v to see invocation)