customlist.h

来自「igmp for switch in vxworks」· C头文件 代码 · 共 52 行

H
52
字号
/********************************************************************
	创建时间:	2004-03-23   15:45
	
	文件名: 	CustomList.h
	
	文件路径:	e:\Project\Work\Timer
	
	创建人:		陈	皓
	
	文件介绍:	声明双向链表的操作接口
*********************************************************************/

#ifndef _CUSTOMLIST_H
#define _CUSTOMLIST_H

#include <stdio.h>

typedef struct SCustomList
{
	struct SCustomList *pNext;
	struct SCustomList *pPrev;
}SCustomList;

#define CUSTOM_LIST_INIT(name) { &(name), &(name) }

#define CUSTOM_LIST_HEAD(name) \
SCustomList name = CUSTOM_LIST_INIT(name)

#define INIT_CUSTOM_LIST(ptr) do { \
	(ptr)->pNext = (ptr); (ptr)->pPrev = (ptr); \
} while (0)

#define CLEAR_CUSTOM_LIST(ptr) do { \
	(ptr)->pNext = NULL; (ptr)->pPrev = NULL; \
} while (0)

#define EntryList(ptr, type, member) \
	((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))

#define ForEachList(pos, head) \
	for (pos = (head)->pNext; pos != (head); pos = pos->pNext)


void CustomAddList(SCustomList *pElement, SCustomList *pPrev, SCustomList *pNext);
void CustomAddHead(SCustomList *pElement, SCustomList *pHead);
void CustomAddTail(SCustomList *pElement, SCustomList *pHead);
void CustomDelList(SCustomList *pElement);
BOOL CustomEmptyList(SCustomList *pHead);
/*void CustomSpliceList(SCustomList *pList, SCustomList *pHead);*/

#endif/*_CUSTOMLIST_H*/

⌨️ 快捷键说明

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