下面的代码片段中红色标出的部分等价于绿色标出的部分:
红色的部分更简洁明了。很适合链表操作中的添加操作。
zwl_srv_control *__list__,*__end__;
void add_job(zwl_srv_control*pcontrol)
{
pcontrol->_pnext = NULL;
EnterCriticalSection(&__cs__);
(__end__?__end__->_pnext:__list__) = pcontrol;
/*
if(!__end__)
__list__ = pcontrol;
else
__end__->next = pcontrol;
*/
__end__ = pcontrol;
LeaveCriticalSection(&__cs__);
Sleep(0);
}