C++ vertical bar?

C++ vertical bar?

本文关键字:bar vertical C++      更新时间:2023-10-16

等号前的竖线是什么意思?就像下面的代码一样:

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

createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;

是复合赋值运算符,实际上等效于

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;

其中运算符 | 表示按位运算符 OR。即对这两个操作数的所有位应用 OR 运算。它通常用于设置整体对象中的某些位或标志。

按位 OR 运算符的操作如下

0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1

因此,此语句设置变量 createDeviceFlags 的位,对应于设置标志位 D3D11_CREATE_DEVICE_DEBUG 也就是说,此标志已打开。

|运算符是按位 OR 运算符。

+-/*运算符一样,将|运算符放在等号之前是以下的简写版本:

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG;