2014-01-10 3 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; 
과 같습니다.

여기서 operator | 비트 연산자 OR을 의미합니다. 그것은이 두 피연산자 연산 OR의 모든 비트에 적용됩니다. 일반적으로 정수형 객체의 일부 비트 또는 플래그를 설정하는 데 사용됩니다.

비트 단위 OR 연산자의 동작은이 플래그가 켜져있다 D3D11_CREATE_DEVICE_DEBUG 플래그의 비트를 설정하는 대응 변수 createDeviceFlags 비트에

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

따라서이 명령 세트를 수행한다.

5

| 오퍼레이터는 bitwise OR operator이다.

createDeviceFlags = createDeviceFlags | D3D11_CREATE_DEVICE_DEBUG; 
+3

SO가있는 사람들 중 일부는 대답을하지 않아도 안된다고 생각하는 질문에 답을 표시합니다. – PlasmaHH

+2

나는 어떤 사람들 (나 아닌)이 당신이 설명하지 않았기 때문에 downvoted라고 생각한다. 평균. –

+1

@VladfromMoscow : 아마 맞을 것입니다. 나는 그것이 등호 앞에 놓이게 될 것을 의미하는 것에 대한 질문에 사로 잡혔다 고 생각한다. 내 대답을 업데이트했습니다. –