2014-01-10 4 views

ответ

7

Это

createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG; 

является назначением соединения и фактически эквивалентен

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG; 

где оператор | означает побитовый оператор OR. То есть для всех битов этих двух операндов применяется операция OR. Обычно он используется для установки некоторых битов или флагов в интегральном объекте.

Действия побитового ИЛИ оператор следующих

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

Так что это оператор устанавливает на битах переменной createDeviceFlags, что соответствует набору битого флага D3D11_CREATE_DEVICE_DEBUG То есть этот флаг включен.

5

Оператор | является bitwise OR operator.

Как с +, -, / и * операторами, помещая оператор | перед знаком равенства является сокращенной версией:

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG; 
+3

Кажется, что некоторые люди на SO downvote отвечают на вопросы, на которые, по их мнению, никогда не должны отвечать (независимо от того, доступен ли ответ). – PlasmaHH

+2

Я думаю, что некоторые люди (а не я) занижены, потому что вы не объяснили, что делает оператор | имею в виду. –

+1

@ VladfromMoscow: Вы, вероятно, правы. Наверное, я был доволен вопросом о том, что он должен был поставить перед знаком равенства. Я обновил свой ответ. –

Смежные вопросы