#define TAILQ_INSERT_AFTER(head,listelm,elm,field) do { \if ((TAILQ_NEXT((elm),field) = TAILQ_NEXT((listelm),field)) = NULL)\TAILQ_NEXT((elm),field)->field.tqe_prev = \&TAILQ_NEXT((elm),field); \else \(head)->tqh_last = &TAILQ_NEXT((elm),field); \TAILQ_NEXT((listelm),field) = (elm); \(elm)->field.tqe_prev = &TAILQ_NEXT((listelm),field); \} while (0)

问题描述:

#define TAILQ_INSERT_AFTER(head,listelm,elm,field) do { \
if ((TAILQ_NEXT((elm),field) = TAILQ_NEXT((listelm),field)) = NULL)\
TAILQ_NEXT((elm),field)->field.tqe_prev = \
&TAILQ_NEXT((elm),field); \
else \
(head)->tqh_last = &TAILQ_NEXT((elm),field); \
TAILQ_NEXT((listelm),field) = (elm); \
(elm)->field.tqe_prev = &TAILQ_NEXT((listelm),field); \
} while (0)

具体是什么地方不清楚,这是一个首尾队列插入元素的宏封装.