等号前的竖条是什么意思?如下面的代码所示:
UINT createDeviceFlags = 0;
#ifdef _DEBUG
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
答案 0 :(得分:8)
此
createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
是复合赋值运算符,实际上等同于
createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;
其中operator |表示按位运算符OR。这是为了应用这两个操作数的所有位操作OR。它通常用于设置整数对象中的某些位或标志。
按位OR运算符的操作如下
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
所以这个语句设置变量createDeviceFlags的位,对应于标志D3D11_CREATE_DEVICE_DEBUG的设置位。这个标志是打开的。
答案 1 :(得分:5)
|
运算符是bitwise OR operator。
与+
,-
,/
和*
运算符一样,将|
运算符放在等号之前是以下的简写版本:
createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;