#define RemoveHeadList(TYPE,ListHead) \ (TYPE)(ListHead)->Flink;\ <- here {\ TYPE FirstEntry;\ FirstEntry =(ListHead)->Flink;\ FirstEntry->Flink->Blink =(TYPE)(ListHead);\ (ListHead)->Flink = FirstEntry->Flink;\ } What does the second line, marked as 'here' ? I've ignored it.