if (!pTmpAdapterInfo->pIpAddrList ) {//说明ipv4为空 if (!pTmpAdapterInfo->pIpAddrv6List || !strncmp(pTmpAdapterInfo->pIpAddrv6List->struIpAddrString.szIPAddr, "::1", strlen("::1"))) { pTmpAdapterInfo = pTmpAdapterInfo->pNext; continue; } } if (!strncmp(pTmpAdapterInfo->pIpAddrList->struIpAddrString.szIPAddr, "127.0.0.1", strlen("127.0.0.1"))) { pTmpAdapterInfo = pTmpAdapterInfo->pNext; continue; } 优化这段代码
时间: 2024-02-23 19:58:28 浏览: 95
:books:适用于C和C ++的单头utf8字符串函数-C/C++开发
这段代码中存在重复的 continue 语句,可以将它们合并为一个。同时,可以将判断 IPv4 是否为空的代码与判断 IPv6 是否为本地回环地址的代码合并在一起,避免重复判断。最终优化后的代码如下:
```c++
while (pTmpAdapterInfo) {
if (!pTmpAdapterInfo->pIpAddrList ||
(!pTmpAdapterInfo->pIpAddrv6List || !strncmp(pTmpAdapterInfo->pIpAddrv6List->struIpAddrString.szIPAddr, "::1", strlen("::1"))) ||
!strncmp(pTmpAdapterInfo->pIpAddrList->struIpAddrString.szIPAddr, "127.0.0.1", strlen("127.0.0.1"))) {
pTmpAdapterInfo = pTmpAdapterInfo->pNext;
continue;
}
// do something...
}
```
阅读全文