2014-01-10 243 views
-2

等号前的垂直线是什么意思?就像下面的代码:C++垂直条?

UINT createDeviceFlags = 0; 
#ifdef _DEBUG 
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; 
#endif 

回答

7

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位。

5

|运算符是bitwise OR operator

如同+-/,和*运营商,将所述|操作者等号之前是的简写版本:

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG; 
+3

看起来,有些人对于他们认为应该永远不会回答的问题回答了问题(无论答案是否可用)。 – PlasmaHH

+2

我认为有些人(不是我)低估了,因为你没有解释操作符|意思。 –

+1

@VladfromMoscow:你可能是对的。我猜想我被卷入了关于在等号之前放置什么的问题。我已经更新了我的答案。 –