【发布时间】:2020-06-02 09:29:18
【问题描述】:
谁能解释一下这个 foo 循环是如何工作的?
for (bitMask = 0x01; bitMask; bitMask <<= 1)
这是我第一次在 for 循环中遇到这样的语法,很想知道循环将如何结束。
【问题讨论】:
-
最终,该单个位被移出整数的“顶部”,因此值变为零,循环结束。所以它实际上迭代了整数的每一位。
-
这取决于所使用的变量的类型。在不知道的情况下猜测这段代码的作用是没有意义的。
-
它要么等同于
for (bitMask = 1; bitMask != 0; bitMask *= 2),要么具有未定义的行为。