2014-01-10 242 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:你可能是對的。我猜想我被捲入了關於在等號之前放置什麼的問題。我已經更新了我的答案。 –