我正在研究LwIP以太网堆栈,并且在netif.c文件中看到以下代码:

if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)


这里有一个指针和一个整数之间的逻辑比较,我无法回忆起,但是一段时间之前,我在谷歌上搜索了一下,发现这是一种检查空指针的聪明方法,但现在无法获取该链接,因此,如果您知道链接或对此有任何描述,请尝试向我提供。

最佳答案

if (ipaddr && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)


仅当且仅当ip_addr_cmp不为NULL时,这才意味着继续调用ipaddr

如果该语句按照以下相同含义进行修改,那么您可能会更清楚。

if ((ipaddr != NULL) && (ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0)

关于c - 整数的逻辑与运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43205955/

10-10 22:15