我正在研究 LwIP 以太网堆栈,我在 netif.c
文件中看到以下代码:
if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
这里有一个指针和整数之间的逻辑比较,我不记得了,但实际上我之前用谷歌搜索过它,发现这是检查空指针的聪明方法,但无法得到它现在链接,所以如果你们知道链接或对此有任何描述,请尝试向我提供。
最佳答案
if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
这仅意味着当且仅当ipaddr
不为NULL时继续调用ip_addr_cmp
。
如果将语句修改如下,含义相同,您可能会更清楚。
if ((ipaddr != NULL) && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)
关于c - 指针与整数的逻辑与,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43205955/