等号前的垂直线是什么意思?就像下面的代码:C++垂直条?
UINT createDeviceFlags = 0;
#ifdef _DEBUG
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
等号前的垂直线是什么意思?就像下面的代码:C++垂直条?
UINT createDeviceFlags = 0;
#ifdef _DEBUG
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
这
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
是复合赋值运营商实际上相当于
createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;
where operator |意味着按位运算符OR。这是对这两个操作数的所有位进行操作或应用。它通常用于在一个整体对象上设置一些位或标志。
位或操作符的作用是继
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
因此该语句集上对应设置标志D3D11_CREATE_DEVICE_DEBUG也就是说这个标志接通的位变量createDeviceFlags位。
的|
运算符是bitwise OR operator。
如同+
,-
,/
,和*
运营商,将所述|
操作者等号之前是的简写版本:
createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;
看起来,有些人对于他们认为应该永远不会回答的问题回答了问题(无论答案是否可用)。 – PlasmaHH
我认为有些人(不是我)低估了,因为你没有解释操作符|意思。 –
@VladfromMoscow:你可能是对的。我猜想我被卷入了关于在等号之前放置什么的问题。我已经更新了我的答案。 –