【发布时间】:2011-05-18 10:50:46
【问题描述】:
我对编码比较陌生,无论如何我在复制 iphone 像素技术的教程时遇到了这个 if 语句,无论如何我不确定它在做什么,如果有人可以为我解释它会很棒谢谢。
for(int j = 0; j < (width * height); j++ )
{
if ( pixels[j] & 0xff000000 )
{
collisionMap[j] |= 1;
}
}
让我感到困惑的部分是“|=”和单个“&”符号。这里发生了什么?谢谢
【问题讨论】:
-
请将此标记为 C++。由于 for 循环中的变量声明,这不会在 C 中编译。
-
@Lundin:它将使用任何符合 C99 的编译器进行编译,甚至可以在没有
-ansi或-std=c89选项的情况下使用 C99 之前的 gcc 进行编译。 -
@Jan Ah dang it,你是对的,我忘记了 C99 允许它。谢谢指正。
-
这是可以理解的——它只存在了 12 年,所以它在 C 进化时间尺度上是一个相当新的东西
:)