⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g_stack.h

📁 C和指针非常好的一本书.里面的有许多代码可以借鉴.
💻 H
字号:
/*
** GENERIC implementation of a stack with a static array.  The array
** size is given as one of the arguments when the stack is
** instantiated.
*/
#include <assert.h>

#define	GENERIC_STACK( STACK_TYPE, SUFFIX, STACK_SIZE )		\
								\
	static	STACK_TYPE	stack##SUFFIX[ STACK_SIZE ];	\
	static	int		top_element##SUFFIX = -1;	\
								\
	int							\
	is_empty##SUFFIX( void )				\
	{							\
		return top_element##SUFFIX == -1;		\
	}							\
								\
	int							\
	is_full##SUFFIX( void )					\
	{							\
		return top_element##SUFFIX == STACK_SIZE - 1;	\
	}							\
								\
	void							\
	push##SUFFIX( STACK_TYPE value )			\
	{							\
		assert( !is_full##SUFFIX() );			\
		top_element##SUFFIX += 1;			\
		stack##SUFFIX[ top_element##SUFFIX ] = value;	\
	}							\
								\
	void							\
	pop##SUFFIX( void )					\
	{							\
		assert( !is_empty##SUFFIX() );			\
		top_element##SUFFIX -= 1;			\
	}							\
								\
	STACK_TYPE top##SUFFIX( void )				\
	{							\
		assert( !is_empty##SUFFIX() );			\
		return stack##SUFFIX[ top_element##SUFFIX ];	\
	}

⌨️ 快捷键说明

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