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

📄 htlist.h

📁 用于linux和其他unix下面的
💻 H
字号:
/*              List object****      The list object is a generic container for storing collections**      of things in order.*/#ifndef HTLIST_H#define HTLIST_H#ifndef HTUTILS_H#include <HTUtils.h>#endiftypedef struct _HTList HTList;struct _HTList {	void *		object;	HTList *	next;};/*	Fast macro to traverse a list.  Call it first with copy of the list**	header.  It returns the first object and increments the passed list**	pointer.  Call it with the same variable until it returns NULL.*/#define HTList_nextObject(me) \	((me) && ((me) = (me)->next) ? (me)->object : NULL)/*	Macro to find object pointed to by the head (returns NULL**	if list is empty, OR if it doesn't exist - Yuk!)*/#define HTList_lastObject(me) \	((me) && (me)->next ? (me)->next->object : NULL)/*	Macro to check if a list is empty (or doesn't exist - Yuk!)*/#define HTList_isEmpty(me) ((me) ? ((me)->next == NULL) : YES)/*	Create list.*/extern HTList * HTList_new NOPARAMS;/*	Delete list.*/extern void HTList_delete PARAMS((	HTList *	me));/*	Reverse a list.*/extern HTList * HTList_reverse PARAMS((	HTList *	start));/*	Append two lists, making second list empty.*/extern HTList * HTList_appendList PARAMS((	HTList *	start,	HTList *	tail));/*      Add object to START of list (so it is pointed to by the head).*/extern void HTList_addObject PARAMS((	HTList *	me,	void *		newObject));/*      Append object to END of list (furthest from the head).*/extern void HTList_appendObject PARAMS((	HTList *	me,	void *		newObject));/*	Insert an object into the list at a specified position.**      If position is 0, this places the object at the head of the list**      and is equivalent to HTList_addObject().*/extern void HTList_insertObjectAt PARAMS((	HTList *	me,	void *		newObject,	int		pos));/*	Remove specified object from list.*/extern BOOL HTList_removeObject PARAMS((	HTList *	me,	void *		oldObject));/*	Remove object at a given position in the list, where 0 is the**	object pointed to by the head (returns a pointer to the element**	(->object) for the object, and NULL if the list is empty, or**	if it doesn't exist - Yuk!).*/extern void * HTList_removeObjectAt PARAMS((	HTList *	me,	int		position));/*	Remove object from START of list (the Last one inserted**	via HTList_addObject(), and pointed to by the head).*/extern void * HTList_removeLastObject PARAMS((	HTList *	me));/*	Remove object from END of list (the First one inserted**	via HTList_addObject(), and furthest from the head).*/extern void * HTList_removeFirstObject PARAMS((	HTList *	me));/*	Determine total number of objects in the list,**	not counting the head.*/extern int HTList_count PARAMS((	HTList *	me));/*	Determine position of an object in the list (a value of 0**	means it is pointed to by the head; returns -1 if not found).*/extern int HTList_indexOf PARAMS((	HTList *	me,	void *		object));/*	Return pointer to the object at a specified position in the list,**	where 0 is the object pointed to by the head (returns NULL if**	the list is empty, or if it doesn't exist - Yuk!).*/extern void * HTList_objectAt PARAMS((	HTList *	me,	int		position));#endif /* HTLIST_H */

⌨️ 快捷键说明

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