c - 指针与整数的逻辑与

标签 c pointers

我正在研究 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/

相关文章:

c - 如何将 stderr 和 stout 重定向到多个位置?

c - 在灰度像素图像中绘制矩形

c - 数组数据指向另一个数组中的另一个位置

c - 指针算法在链表指针中不起作用?

c++ - 函数指针的解引用是如何发生的?

c - C语言中如何使用strstr()函数比较字符数组中的内容?

c - C中的这种插入排序有什么问题?

c++ - 指针只是一个整数吗?

c - 将 argv 给出的内存地址分配给 c 中的指针

c - 在 C 中返回 int 数组