首先让我们从简单的部分开始:逻辑否定运算符!。
对于任何逻辑操作,都会!反转该操作的状态。如此,如此。!true_false!falsetrue
netInterface.IsLoopBack是单个位的值。
netInterface.flags()返回一组位。
netInterface.flags() & netInterface.IsLoopBack检查特定位netInterface.IsLoopBack是否在 . 返回的集合中netInterface.flags()。
现在把它放在一起,结果netInterface.flags() & netInterface.IsLoopBack是一个整数值。如果该位在集合中,则它是非零的。
在 C++ 中,所有非零整数值都被认为是“真”。
对这个值应用!运算符会反转条件。
所以条件!(netInterface.flags() & netInterface.IsLoopBack)是true该位不在集合中。
最后一点上下文:循环遍历本地系统上的所有网络接口。
如果接口不是环回接口(地址127.0.0.1是环回地址),则打印接口的名称和地址。
附录:通过为操作员阅读一些不错的 C++ 书籍,所有这些都可以相对容易地弄清楚。并阅读 和 的QNetworkInterface::flags()文档enum QNetworkInterface::InterfaceFlag。