我正在研究LwIP以太网堆栈,我在netif.c
文件中看到以下代码:
if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
这里有一个指针和一个整数之间的逻辑比较,我无法回想起但实际上有一段时间我用谷歌搜索它并发现它是一种检查空指针的聪明方法,但是无法得到它现在链接,所以你们中的任何人如果知道链接或有任何关于此的描述,请尝试提供给我。
答案 0 :(得分:0)
if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
这只是意味着继续调用ip_addr_cmp
,当且仅当ipaddr
不为NULL时。
如果声明的修改如下,含义相同,则可能更清楚。
if ((ipaddr != NULL) && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)