先上一段代码:
///
#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,在后面的调用时又加了一个函数体,第一次看到还有这种用法,不太明白 ,希望大神们给以指导。这是什么原理?