ListNodeEnd
Description
Reference to tail node in list
Parameters
| Name | Direction | Description |
|---|---|---|
l |
in | List to get node from |
Success
Reference to head node.
Failure
NULL
Usage example (Cross-references)
Usage examples (Cross-references)
GenericListNode *node1 = GENERIC_LIST_NODE(ListNodePtrAt(&list, 1));
GenericListNode *begin = GENERIC_LIST_NODE(ListNodeBegin(&list));
GenericListNode *end = GENERIC_LIST_NODE(ListNodeEnd(&list));
GenericListNode *same = ListNodeRelative(ListNodeBegin(&list), 0);
GenericListNode *rel_f2 = ListNodeRelative(ListNodeBegin(&list), 2); GenericListNode *same = ListNodeRelative(ListNodeBegin(&list), 0);
GenericListNode *rel_f2 = ListNodeRelative(ListNodeBegin(&list), 2);
GenericListNode *rel_b2 = ListNodeRelative(ListNodeEnd(&list), -2);
ListNode(int) *null_node = NULL; result = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
(*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
(*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
result = result && (same == begin); (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
(*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
result = result && (same == begin);
result = result && rel_f2 && ListNodeData(rel_f2) && (*(int *)ListNodeData(rel_f2) == 30); result = result && rel_b2 && ListNodeData(rel_b2) && (*(int *)ListNodeData(rel_b2) == 20);
result = result && (ListNodeRelative(ListNodeBegin(&list), -1) == NULL);
result = result && (ListNodeRelative(ListNodeEnd(&list), 1) == NULL);
result = result && (ListNodeNext(null_node) == NULL);
result = result && (ListNodePrev(null_node) == NULL);- In
Foreach.h:103:
for (TYPE_OF(l) UNPL(pl) = (l); UNPL(pl); UNPL(pl) = NULL) \
if ((ValidateList(UNPL(pl)), 1) && (UNPL(pl)->tail)) \
for (GenericListNode * UNPL(node) = (GenericListNode *)ListNodeEnd(UNPL(pl)); UNPL(node); \
UNPL(node) = ListNodePrev(UNPL(node))) \
if (((void *)UNPL(node)->next != (void *)UNPL(node)) && \
- In
Foreach.h:137:
for (TYPE_OF(l) UNPL(pl) = (l); UNPL(pl); UNPL(pl) = NULL) \
if ((ValidateList(UNPL(pl)), 1) && (UNPL(pl)->tail)) \
for (GenericListNode * UNPL(node) = (GenericListNode *)ListNodeEnd(UNPL(pl)); UNPL(node); \
UNPL(node) = ListNodePrev(UNPL(node))) \
if (((void *)UNPL(node)->next != (void *)UNPL(node)) && \
- In
Foreach.h:245:
for (TYPE_OF(l) UNPL(pl) = (l); UNPL(pl); UNPL(pl) = NULL) \
if ((ValidateList(UNPL(pl)), 1) && UNPL(pl)->tail) \
for (GenericListNode * UNPL(node) = (GenericListNode *)ListNodeEnd(UNPL(pl)); UNPL(node); \
UNPL(node) = ListNodePrev(UNPL(node))) \
for (u64 UNPL(i) = 0; UNPL(node) && UNPL(i) < (end); UNPL(node) = ListNodePrev(UNPL(node)), ++UNPL(i)) \
- In
Foreach.h:283:
for (TYPE_OF(l) UNPL(pl) = (l); UNPL(pl); UNPL(pl) = NULL) \
if ((ValidateList(UNPL(pl)), 1) && UNPL(pl)->tail) \
for (GenericListNode * UNPL(node) = (GenericListNode *)ListNodeEnd(UNPL(pl)); UNPL(node); \
UNPL(node) = ListNodePrev(UNPL(node))) \
for (u64 UNPL(i) = 0; UNPL(node) && UNPL(i) < (end); UNPL(node) = ListNodePrev(UNPL(node)), ++UNPL(i)) \
Last updated on