补充使用到的两个结构体:
1.
typedef struct xLIST
{
UBaseType_t uxNumberOfItems;
ListItem_t * pxIndex;
MiniListItem_t xListEnd;
}List_t;
struct xMINI_LIST_ITEM
{
/* data */
TickType_t xItemValue;
struct xLIST_ITEM * pxNext;
struct xLIST_ITEM * pxPrevious;
};
typedef struct xMINI_LIST_ITEM MiniListItem_t;
void vListInitialise(List_t * const pxList)
{
pxList->pxIndex=(ListItem_t *) & (pxList->xListEnd);
}
xLIST结构体定义中,pxIndex是(ListItem_t )类型
第二个问题,(ListItem_t)&(pxList->xListEnd)的目的是将&(pxList->xListEnd)强制转换为(ListItem_t)类型;
第一个问题,(pxList->xListEnd)和(pxList->pxIndex)的类型不一样,所以需要将类型转为pxList->pxIndex的类型,也就是(ListItem_t)类型。