C++垂直条?

use*_*280 -2 c++ operators operator-keyword

等号前的竖条是什么意思?如下面的代码:

 UINT createDeviceFlags = 0;
#ifdef _DEBUG
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
Run Code Online (Sandbox Code Playgroud)

Vla*_*cow 8

这个

createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
Run Code Online (Sandbox Code Playgroud)

是复合赋值运算符,实际上相当于

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;
Run Code Online (Sandbox Code Playgroud)

运营商| 表示按位运算符OR.这是为了应用这两个操作数的所有位操作OR.它通常用于设置整数对象中的某些位或标志.

按位OR运算符的动作如下

0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
Run Code Online (Sandbox Code Playgroud)

所以这个语句设置变量createDeviceFlags的位,它对应于标志D3D11_CREATE_DEVICE_DEBUG的设置位.这个标志被打开.


Jon*_*ood 5

|操作是位或运算符.

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

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;
Run Code Online (Sandbox Code Playgroud)

  • 似乎SO上的一些人对他们认为永远不会回答的问题(无论答案是否可用)进行了回答. (3认同)
  • 我认为有些人(不是我)因为你没有解释操作员的问题而被低估了 意思. (2认同)