先上一段代码:
///////////////////////////////////////////////////////////////////////////////////////////////////////
#define list_for_each_entry_bssdes(pos, head, member)
\
for (pos = list_entry((head)->next,struct bss_descriptor, member);
\
&pos->member != (head);
\
pos = list_entry(pos->member.next,struct bss_descriptor, member))
。。。
。。。
。。。
list_for_each_entry_bssdes(iter, &priv->network_list, list)
{
printf_scan("%02d: BSSID %pM, RSSI %d, SSID '%s'\n",
i++, iter->bssid, iter->rssi,
iter->ssid);
if((iter->rssi) < (tmpiter->rssi))
//tmpiter为最大的AP
tmpiter = iter;
}
代码开始宏定义了函数 list_for_each_entry_bssdes,在后面的调用时又加了一个函数体,第一次看到还有这种用法,不太明白 ,希望大神们给以指导。这是什么原理?