00001 /* 00002 @file dkcStack.h 00003 @auther d金魚 00004 @since 2004/3/xx 00005 @brief スタック構造 00006 */ 00007 00008 00009 #ifndef dkutil_c_Stack__h 00010 #define dkutil_c_Stack__h 00011 00012 00013 00014 #include "dkcOSIndependent.h" 00015 /* 00016 typedef struct dkc_Stack{ 00018 BYTE *mBuffer; 00020 size_t mSize; 00022 size_t mRear; 00024 size_t mOffsetOf; 00025 }DKC_STACK; 00026 */ 00030 typedef struct dkc_Stack{ 00032 BYTE *mBuffer; 00034 size_t mSize; 00036 size_t mCount; 00038 size_t mOffsetOf; 00039 }DKC_STACK; 00040 00041 00042 00043 00049 DKC_EXTERN DKC_STACK * WINAPI dkcAllocStack(size_t numoff__,size_t offsetof__); 00056 DKC_EXTERN int WINAPI dkcFreeStack(DKC_STACK **ptr); 00057 00058 00063 DKC_EXTERN void WINAPI dkcStackPop(DKC_STACK *ptr); 00064 00065 DKC_EXTERN int WINAPI dkcStackTop(DKC_STACK *ptr,void *); 00066 00067 DKC_EXTERN size_t WINAPI dkcStackSize(DKC_STACK *ptr); 00068 00069 DKC_EXTERN BOOL WINAPI dkcStackIsEmpty(DKC_STACK *ptr); 00073 DKC_EXTERN int WINAPI dkcStackPush(DKC_STACK *ptr,const void *); 00074 00075 DKC_EXTERN int WINAPI dkcStackDynamicPush(DKC_STACK *ptr,const void *); 00079 DKC_EXTERN void WINAPI dkcStackClear(DKC_STACK *ptr); 00080 00081 #endif //end of include once