cocos2d-x 3.0
- 首页 - 相关页面 - 模块 - 命名空间 - - 文件 -
宏定义 - 图1 宏定义 - 图2)
- 文件列表 - 文件成员

全部)) 命名空间) 文件) 函数) 变量) 类型定义) 枚举) 枚举值) 属性) 友元) 宏定义)))

宏定义

utlist.h 文件参考

#include

## 宏定义
#define UTLIST_VERSION 1.9.8
#define LDECLTYPE(x) __typeof(x)
#define _SV(elt, list)
#define _NEXT(elt, list, next) ((elt)->next)
#define _NEXTASGN(elt, list, to, next) ((elt)->next)=(to)
#define _PREVASGN(elt, list, to, prev) ((elt)->prev)=(to)
#define _RS(list)
#define _CASTASGN(a, b) (a)=(b)
#define LL_SORT(list, cmp) LL_SORT2(list, cmp, next)
#define LL_SORT2(list, cmp, next)
#define DL_SORT(list, cmp) DL_SORT2(list, cmp, prev, next)
#define DL_SORT2(list, cmp, prev, next)
#define CDL_SORT(list, cmp) CDL_SORT2(list, cmp, prev, next)
#define CDL_SORT2(list, cmp, prev, next)
#define LL_PREPEND(head, add) LL_PREPEND2(head,add,next)
#define LL_PREPEND2(head, add, next)
#define LL_CONCAT(head1, head2) LL_CONCAT2(head1,head2,next)
#define LL_CONCAT2(head1, head2, next)
#define LL_APPEND(head, add) LL_APPEND2(head,add,next)
#define LL_APPEND2(head, add, next)
#define LL_DELETE(head, del) LL_DELETE2(head,del,next)
#define LL_DELETE2(head, del, next)
#define LL_APPEND_VS2008(head, add) LL_APPEND2_VS2008(head,add,next)
#define LL_APPEND2_VS2008(head, add, next)
#define LL_DELETE_VS2008(head, del) LL_DELETE2_VS2008(head,del,next)
#define LL_DELETE2_VS2008(head, del, next)
#define LL_FOREACH(head, el) LL_FOREACH2(head,el,next)
#define LL_FOREACH2(head, el, next) for(el=head;el;el=(el)->next)
#define LL_FOREACH_SAFE(head, el, tmp) LL_FOREACH_SAFE2(head,el,tmp,next)
#define LL_FOREACH_SAFE2(head, el, tmp, next) for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)
#define LL_SEARCH_SCALAR(head, out, field, val) LL_SEARCH_SCALAR2(head,out,field,val,next)
#define LL_SEARCH_SCALAR2(head, out, field, val, next)
#define LL_SEARCH(head, out, elt, cmp) LL_SEARCH2(head,out,elt,cmp,next)
#define LL_SEARCH2(head, out, elt, cmp, next)
#define LL_REPLACE_ELEM(head, el, add)
#define LL_PREPEND_ELEM(head, el, add)
#define DL_PREPEND(head, add) DL_PREPEND2(head,add,prev,next)
#define DL_PREPEND2(head, add, prev, next)
#define DL_APPEND(head, add) DL_APPEND2(head,add,prev,next)
#define DL_APPEND2(head, add, prev, next)
#define DL_CONCAT(head1, head2) DL_CONCAT2(head1,head2,prev,next)
#define DL_CONCAT2(head1, head2, prev, next)
#define DL_DELETE(head, del) DL_DELETE2(head,del,prev,next)
#define DL_DELETE2(head, del, prev, next)
#define DL_FOREACH(head, el) DL_FOREACH2(head,el,next)
#define DL_FOREACH2(head, el, next) for(el=head;el;el=(el)->next)
#define DL_FOREACH_SAFE(head, el, tmp) DL_FOREACH_SAFE2(head,el,tmp,next)
#define DL_FOREACH_SAFE2(head, el, tmp, next) for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)
#define DL_SEARCH_SCALAR LL_SEARCH_SCALAR
#define DL_SEARCH LL_SEARCH
#define DL_SEARCH_SCALAR2 LL_SEARCH_SCALAR2
#define DL_SEARCH2 LL_SEARCH2
#define DL_REPLACE_ELEM(head, el, add)
#define DL_PREPEND_ELEM(head, el, add)
#define CDL_PREPEND(head, add) CDL_PREPEND2(head,add,prev,next)
#define CDL_PREPEND2(head, add, prev, next)
#define CDL_DELETE(head, del) CDL_DELETE2(head,del,prev,next)
#define CDL_DELETE2(head, del, prev, next)
#define CDL_FOREACH(head, el) CDL_FOREACH2(head,el,next)
#define CDL_FOREACH2(head, el, next) for(el=head;el;el=((el)->next==head ? 0L : (el)->next))
#define CDL_FOREACH_SAFE(head, el, tmp1, tmp2) CDL_FOREACH_SAFE2(head,el,tmp1,tmp2,prev,next)
#define CDL_FOREACH_SAFE2(head, el, tmp1, tmp2, prev, next)
#define CDL_SEARCH_SCALAR(head, out, field, val) CDL_SEARCH_SCALAR2(head,out,field,val,next)
#define CDL_SEARCH_SCALAR2(head, out, field, val, next)
#define CDL_SEARCH(head, out, elt, cmp) CDL_SEARCH2(head,out,elt,cmp,next)
#define CDL_SEARCH2(head, out, elt, cmp, next)
#define CDL_REPLACE_ELEM(head, el, add)
#define CDL_PREPEND_ELEM(head, el, add)

宏定义说明

#define _CASTASGN ( a,
b
) (a)=(b)

#define _NEXT ( elt,
list,
next
) ((elt)->next)

#define _NEXTASGN ( elt,
list,
to,
next
) ((elt)->next)=(to)

#define _PREVASGN ( elt,
list,
to,
prev
) ((elt)->prev)=(to)

#define _RS ( list)

#define _SV ( elt,
list
)

#define CDL_DELETE ( head,
del
) CDL_DELETE2(head,del,prev,next)

#define CDL_DELETE2 ( head,
del,
prev,
next
)

值:

do { \

if ( ((head)==(del)) && ((head)->next == (head))) { \

(head) = 0L; \

} else { \

(del)->next->prev = (del)->prev; \

(del)->prev->next = (del)->next; \

if ((del) == (head)) (head)=(del)->next; \

} \

} while (0)

#define CDL_FOREACH ( head,
el
) CDL_FOREACH2(head,el,next)

#define CDL_FOREACH2 ( head,
el,
next
) for(el=head;el;el=((el)->next==head ? 0L : (el)->next))

#define CDL_FOREACH_SAFE ( head,
el,
tmp1,
tmp2
) CDL_FOREACH_SAFE2(head,el,tmp1,tmp2,prev,next)

#define CDL_FOREACH_SAFE2 ( head,
el,
tmp1,
tmp2,
prev,
next
)

值:

for((el)=(head), ((tmp1)=(head)?((head)->prev):NULL); \

(el) && ((tmp2)=(el)->next, 1); \

((el) = (((el)==(tmp1)) ? 0L : (tmp2))))

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define CDL_PREPEND ( head,
add
) CDL_PREPEND2(head,add,prev,next)

#define CDL_PREPEND2 ( head,
add,
prev,
next
)

值:

do { \

if (head) { \

(add)->prev = (head)->prev; \

(add)->next = (head); \

(head)->prev = (add); \

(add)->prev->next = (add); \

} else { \

(add)->prev = (add); \

(add)->next = (add); \

} \

(head)=(add); \

} while (0)

#define CDL_PREPEND_ELEM ( head,
el,
add
)

值:

do { \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

(add)->next = (el); \

(add)->prev = (el)->prev; \

(el)->prev = (add); \

(add)->prev->next = (add); \

if ((head) == (el)) { \

(head) = (add); \

} \

} while (0) \

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define CDL_REPLACE_ELEM ( head,
el,
add
)

值:

do { \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

if ((el)->next == (el)) { \

(add)->next = (add); \

(add)->prev = (add); \

(head) = (add); \

} else { \

(add)->next = (el)->next; \

(add)->prev = (el)->prev; \

(add)->next->prev = (add); \

(add)->prev->next = (add); \

if ((head) == (el)) { \

(head) = (add); \

} \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define CDL_SEARCH ( head,
out,
elt,
cmp
) CDL_SEARCH2(head,out,elt,cmp,next)

#define CDL_SEARCH2 ( head,
out,
elt,
cmp,
next
)

值:

do { \

CDL_FOREACH2(head,out,next) { \

if ((cmp(out,elt))==0) break; \

} \

} while(0)

CDL_FOREACH2

define CDL_FOREACH2(head, el, next)

Definition: utlist.h:662

#define CDL_SEARCH_SCALAR ( head,
out,
field,
val
) CDL_SEARCH_SCALAR2(head,out,field,val,next)

#define CDL_SEARCH_SCALAR2 ( head,
out,
field,
val,
next
)

值:

do { \

CDL_FOREACH2(head,out,next) { \

if ((out)->field == (val)) break; \

} \

} while(0)

CDL_FOREACH2

define CDL_FOREACH2(head, el, next)

Definition: utlist.h:662

#define CDL_SORT ( list,
cmp
) CDL_SORT2(list, cmp, prev, next)

#define CDL_SORT2 ( list,
cmp,
prev,
next
)

#define DL_APPEND ( head,
add
) DL_APPEND2(head,add,prev,next)

#define DL_APPEND2 ( head,
add,
prev,
next
)

值:

do { \

if (head) { \

(add)->prev = (head)->prev; \

(head)->prev->next = (add); \

(head)->prev = (add); \

(add)->next = NULL; \

} else { \

(head)=(add); \

(head)->prev = (head); \

(head)->next = NULL; \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define DL_CONCAT ( head1,
head2
) DL_CONCAT2(head1,head2,prev,next)

#define DL_CONCAT2 ( head1,
head2,
prev,
next
)

值:

do { \

LDECLTYPE(head1) _tmp; \

if (head2) { \

if (head1) { \

_tmp = (head2)->prev; \

(head2)->prev = (head1)->prev; \

(head1)->prev->next = (head2); \

(head1)->prev = _tmp; \

} else { \

(head1)=(head2); \

} \

} \

} while (0)

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define DL_DELETE ( head,
del
) DL_DELETE2(head,del,prev,next)

#define DL_DELETE2 ( head,
del,
prev,
next
)

值:

do { \

assert((del)->prev != NULL); \

if ((del)->prev == (del)) { \

(head)=NULL; \

} else if ((del)==(head)) { \

(del)->next->prev = (del)->prev; \

(head) = (del)->next; \

} else { \

(del)->prev->next = (del)->next; \

if ((del)->next) { \

(del)->next->prev = (del)->prev; \

} else { \

(head)->prev = (del)->prev; \

} \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define DL_FOREACH ( head,
el
) DL_FOREACH2(head,el,next)

#define DL_FOREACH2 ( head,
el,
next
) for(el=head;el;el=(el)->next)

#define DL_FOREACH_SAFE ( head,
el,
tmp
) DL_FOREACH_SAFE2(head,el,tmp,next)

#define DL_FOREACH_SAFE2 ( head,
el,
tmp,
next
) for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)

#define DL_PREPEND ( head,
add
) DL_PREPEND2(head,add,prev,next)

#define DL_PREPEND2 ( head,
add,
prev,
next
)

值:

do { \

(add)->next = head; \

if (head) { \

(add)->prev = (head)->prev; \

(head)->prev = (add); \

} else { \

(add)->prev = (add); \

} \

(head) = (add); \

} while (0)

#define DL_PREPEND_ELEM ( head,
el,
add
)

值:

do { \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

(add)->next = (el); \

(add)->prev = (el)->prev; \

(el)->prev = (add); \

if ((head) == (el)) { \

(head) = (add); \

} else { \

(add)->prev->next = (add); \

} \

} while (0) \

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define DL_REPLACE_ELEM ( head,
el,
add
)

值:

do { \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

if ((head) == (el)) { \

(head) = (add); \

(add)->next = (el)->next; \

if ((el)->next == NULL) { \

(add)->prev = (add); \

} else { \

(add)->prev = (el)->prev; \

(add)->next->prev = (add); \

} \

} else { \

(add)->next = (el)->next; \

(add)->prev = (el)->prev; \

(add)->prev->next = (add); \

if ((el)->next == NULL) { \

(head)->prev = (add); \

} else { \

(add)->next->prev = (add); \

} \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define DL_SEARCH LL_SEARCH

#define DL_SEARCH2 LL_SEARCH2

#define DL_SEARCH_SCALAR LL_SEARCH_SCALAR

#define DL_SEARCH_SCALAR2 LL_SEARCH_SCALAR2

#define DL_SORT ( list,
cmp
) DL_SORT2(list, cmp, prev, next)

#define DL_SORT2 ( list,
cmp,
prev,
next
)

#define LDECLTYPE ( x) __typeof(x)

#define LL_APPEND ( head,
add
) LL_APPEND2(head,add,next)

#define LL_APPEND2 ( head,
add,
next
)

值:

do { \

LDECLTYPE(head) _tmp; \

(add)->next=NULL; \

if (head) { \

_tmp = head; \

while (_tmp->next) { _tmp = _tmp->next; } \

_tmp->next=(add); \

} else { \

(head)=(add); \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define LL_APPEND2_VS2008 ( head,
add,
next
)

值:

do { \

if (head) { \

(add)->next = head; / use add->next as a temp variable / \

while ((add)->next->next) { (add)->next = (add)->next->next; } \

(add)->next->next=(add); \

} else { \

(head)=(add); \

} \

(add)->next=NULL; \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

#define LL_APPEND_VS2008 ( head,
add
) LL_APPEND2_VS2008(head,add,next)

#define LL_CONCAT ( head1,
head2
) LL_CONCAT2(head1,head2,next)

#define LL_CONCAT2 ( head1,
head2,
next
)

值:

do { \

LDECLTYPE(head1) _tmp; \

if (head1) { \

_tmp = head1; \

while (_tmp->next) { _tmp = _tmp->next; } \

_tmp->next=(head2); \

} else { \

(head1)=(head2); \

} \

} while (0)

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define LL_DELETE ( head,
del
) LL_DELETE2(head,del,next)

#define LL_DELETE2 ( head,
del,
next
)

值:

do { \

LDECLTYPE(head) _tmp; \

if ((head) == (del)) { \

(head)=(head)->next; \

} else { \

_tmp = head; \

while (_tmp->next && (_tmp->next != (del))) { \

_tmp = _tmp->next; \

} \

if (_tmp->next) { \

_tmp->next = ((del)->next); \

} \

} \

} while (0)

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define LL_DELETE2_VS2008 ( head,
del,
next
)

值:

do { \

if ((head) == (del)) { \

(head)=(head)->next; \

} else { \

char _tmp = (char)(head); \

while ((head)->next && ((head)->next != (del))) { \

head = (head)->next; \

} \

if ((head)->next) { \

(head)->next = ((del)->next); \

} \

{ \

char _head_alias = (char)&(head); \

*_head_alias = _tmp; \

} \

} \

} while (0)

#define LL_DELETE_VS2008 ( head,
del
) LL_DELETE2_VS2008(head,del,next)

#define LL_FOREACH ( head,
el
) LL_FOREACH2(head,el,next)

#define LL_FOREACH2 ( head,
el,
next
) for(el=head;el;el=(el)->next)

#define LL_FOREACH_SAFE ( head,
el,
tmp
) LL_FOREACH_SAFE2(head,el,tmp,next)

#define LL_FOREACH_SAFE2 ( head,
el,
tmp,
next
) for((el)=(head);(el) && (tmp = (el)->next, 1); (el) = tmp)

#define LL_PREPEND ( head,
add
) LL_PREPEND2(head,add,next)

#define LL_PREPEND2 ( head,
add,
next
)

值:

do { \

(add)->next = head; \

head = add; \

} while (0)

#define LL_PREPEND_ELEM ( head,
el,
add
)

值:

do { \

LDECLTYPE(head) _tmp; \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

(add)->next = (el); \

if ((head) == (el)) { \

(head) = (add); \

} else { \

_tmp = head; \

while (_tmp->next && (_tmp->next != (el))) { \

_tmp = _tmp->next; \

} \

if (_tmp->next) { \

_tmp->next = (add); \

} \

} \

} while (0) \

NULL

define NULL

Definition: CCPlatformDefine.h:61

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define LL_REPLACE_ELEM ( head,
el,
add
)

值:

do { \

LDECLTYPE(head) _tmp; \

assert(head != NULL); \

assert(el != NULL); \

assert(add != NULL); \

(add)->next = (el)->next; \

if ((head) == (el)) { \

(head) = (add); \

} else { \

_tmp = head; \

while (_tmp->next && (_tmp->next != (el))) { \

_tmp = _tmp->next; \

} \

if (_tmp->next) { \

_tmp->next = (add); \

} \

} \

} while (0)

NULL

define NULL

Definition: CCPlatformDefine.h:61

LDECLTYPE

define LDECLTYPE(x)

Definition: utlist.h:74

#define LL_SEARCH ( head,
out,
elt,
cmp
) LL_SEARCH2(head,out,elt,cmp,next)

#define LL_SEARCH2 ( head,
out,
elt,
cmp,
next
)

值:

do { \

LL_FOREACH2(head,out,next) { \

if ((cmp(out,elt))==0) break; \

} \

} while(0)

LL_FOREACH2

define LL_FOREACH2(head, el, next)

Definition: utlist.h:419

#define LL_SEARCH_SCALAR ( head,
out,
field,
val
) LL_SEARCH_SCALAR2(head,out,field,val,next)

#define LL_SEARCH_SCALAR2 ( head,
out,
field,
val,
next
)

值:

do { \

LL_FOREACH2(head,out,next) { \

if ((out)->field == (val)) break; \

} \

} while(0)

LL_FOREACH2

define LL_FOREACH2(head, el, next)

Definition: utlist.h:419

#define LL_SORT ( list,
cmp
) LL_SORT2(list, cmp, next)

#define LL_SORT2 ( list,
cmp,
next
)

#define UTLIST_VERSION 1.9.8
  • cocos
  • 2d
  • utlist.h
  • 生成于 2014年 五月 29日 星期四 09:41:41 , 为 cocos2d-x使用 doxygen 1.8.6