#ifndef _STACK_H_ #define _STACK_H_ #include typedef struct _Stack Stack; typedef void (*StackFreeFunc)(void*); Stack* stack_new(); Stack* stack_new_full(StackFreeFunc free); void stack_destroy(Stack*); void* stack_pop(Stack*); void stack_push(Stack*, void*); void* stack_peek(Stack*); bool stack_empty(Stack*); void stack_clear(Stack*); int stack_size(Stack*); #endif