📄 e_ll.h
字号:
/*------------------------------------------------------------------------** Copyright 1998 by Paul Leventis, Jonathan Rose and the University of ** Toronto. Use is permitted, provided that this attribution is retained ** and no part of the code is re-distributed or included in any commercial ** product except by written agreement with the above parties. ** ** For more information, contact us directly: ** Paul Leventis (leventi@eecg.utoronto.ca) ** Jonathan Rose (jayar@eecg.toronto.edu) ** Department of Electrical and Computer Engineering ** University of Toronto, 10 King's College Rd., ** Toronto, Ontario, CANADA M5S 1A4 ** Phone: (416) 978-6992 Fax: (416) 971-2286 **------------------------------------------------------------------------*//* * e_ll.h * * A general linked list structure. It sounded like a good idea at the time. * Oh well. * * P. Leventis, July 97*/#ifndef E_LL_H#define E_LL_Hstruct tagLL_ENTRY { void *pPayload; struct tagLL_ENTRY *pNextEntry;};typedef struct tagLL_ENTRY LL_ENTRY;struct tagLL { LL_ENTRY *pFirstEntry; LL_ENTRY **ppCurrEntry; void (*free_payload)(void *); int nEntries;};typedef struct tagLL LL; #define ll_free(pLL) { ll_free_helper(pLL); pLL = NULL; }#define ll_at_end(pLL) (!(*((pLL)->ppCurrEntry)))void ll_restart(LL *pLL);void ll_insert(LL *pLL, void *payload);void *ll_alloc(void (*free_payload)(void *));int ll_add(LL *pLL, void *payload);int ll_inc(LL *pLL);void *ll_get(LL *pLL);void *ll_take(LL *pLL);void ll_remove(LL *pLL);void ll_free_helper(LL *pLL);void *ll_search(LL *pLL, char *name);#define LL_LOOP(pLL) for(ll_restart(pLL); !ll_at_end(pLL); ll_inc(pLL))#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -