istack.c

来自「以栈结构实现的多级菜单」· C语言 代码 · 共 38 行

C
38
字号
#include "IStack.h"

IStack* ISTACK_CreateInstance()
{
	return MALLOCREC(IStack);
}
boolean ISTACK_Release(IStack** pStack)
{
	FREEIF(*pStack);
	return TRUE;
}
boolean ISTACK_PushOnStack(IStack* pStack,void* pStackElement)
{
	if((MAX_STACK_SIZE==pStack->m_nTopPtr)||(!pStack)||(!pStackElement))
		return FALSE;
	pStack->m_pData[pStack->m_nTopPtr++]=pStackElement;
	DBGPRINTF("Push on Stack(Number=%d)",pStack->m_nTopPtr);
	return TRUE;
}
void* ISTACK_PopFromStack(IStack* pStack)
{
	if(!pStack)
		return NULL;
	DBGPRINTF("Pop from Stack(Number=%d)",pStack->m_nTopPtr);
	if(pStack->m_nTopPtr>0)
		return  pStack->m_pData[pStack->m_nTopPtr--];
	else
		return NULL;
}
void*   ISTACK_GetTopElement(IStack* pStack)
{
	if(!pStack)
		return NULL;
	if(pStack->m_nTopPtr>0)
		return pStack->m_pData[pStack->m_nTopPtr-1];
	else
		return NULL;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?