C++ 在C+中|=表示什么+;?
我在浏览英特尔深度学习框架Caffe的源代码时,遇到了C++ 在C+中|=表示什么+;?,c++,caffe,C++,Caffe,我在浏览英特尔深度学习框架Caffe的源代码时,遇到了|=。我以前从未在任何代码中看到过这种情况。事实上,我在代码中发现了两次 以及: 我意识到他们都被安置在一个for循环中,这可能意味着某种关系。我只是假设 它是 need_backward = need_backward | param_need_backward; 您正在执行的按位or运算是复合赋值 |=表示=| 它是按位递增的或等价于+=。你可以用C++中的大多数数学运算符来做这件事。 |是,因此您正在将变量重新分配给它的或'd结果。这
|=
。我以前从未在任何代码中看到过这种情况。事实上,我在代码中发现了两次
以及:
我意识到他们都被安置在一个for循环中,这可能意味着某种关系。我只是假设 它是
need_backward = need_backward | param_need_backward;
您正在执行的按位or运算是复合赋值
|=
表示=|
它是按位递增的或
等价于+=
。你可以用C++中的大多数数学运算符来做这件事。
|
是,因此您正在将变量重新分配给它的或'd结果。这是“按位或赋值”计算赋值运算符
x |= y;
相当于:
x = x | y;
有许多类似的运算符:+=、-=、*=,等等
请参阅:我投票将此问题作为离题题结束,因为这是一个关于充分记录基本语法的问题。“按位包含或和赋值运算符”|
是按位或运算符xop=Y
是X=xopy
的缩写。因此,|=
执行两个参数的按位OR运算,并将结果赋给第一个参数。我也不想让您失望,或者实际上:我想--我想知道您是否应该从更简单的开始。我认为它与长版本的不同之处在于,左侧只计算一次。想象一个函数调用产生副作用,返回一个引用。
x |= y;
x = x | y;