다음 매크로 정의가 어떻게 해결 되었습니까? 내 말은 매크로에서 파이프 란 무엇을 의미합니까?
#define EMAIL_SERVER_ADAPTER_FATAL_ERROR MSB_RETURN_TYPE_FATAL_ERROR | 1
, 그것은 하나 또는 MSB_RETURN_TYPE_FATAL_ERROR에 왜 해결?
다음 매크로 정의가 어떻게 해결 되었습니까? 내 말은 매크로에서 파이프 란 무엇을 의미합니까?
#define EMAIL_SERVER_ADAPTER_FATAL_ERROR MSB_RETURN_TYPE_FATAL_ERROR | 1
, 그것은 하나 또는 MSB_RETURN_TYPE_FATAL_ERROR에 왜 해결?
|
은 매크로에서 특별한 의미가 없습니다. 매크로 비트 OR 두 값이다
MSB_RETURN_TYPE_FATAL_ERROR | 1
로 확인 (MSB_RETURN_TYPE_FATAL_ERROR 및 1).
'error_code & EMAIL_SERVER_ADAPTER_FATAL_ERROR'라고 쓰면'error_code & MSB_RETURN_TYPE_FATAL_ERROR | '로'해결 '된다는 뜻이기도합니다. 1 '로되어 있습니다. – Lyth
오 예. 그것은 당신의 대답을 읽은 후에 바보 같은 질문으로 드러납니다. #define은 맹목적으로 텍스트를 대체합니다. – akshay
@Lyth 정확합니다. '#define EMAIL_SERVER_ADAPTER_FATAL_ERROR (MSB_RETURN_TYPE_FATAL_ERROR | 1) '을 통해 바꿔야합니다. – Inspired
매크로 그래서
EMAIL_SERVER_ADAPTER_FATAL_ERROR
은 단지 숫자 후 것을
MSB_RETURN_TYPE_FATAL_ERROR | 1
대체 될 것이며, 단지 텍스트 대체 (즉 일반 비트 단위 OR 동작).
매크로의 |
은 C 및 C++의 다른 곳과 같은 의미입니다. 비트 또는를 의미합니다.
추정 가능 MSB_RETURN_TYPE_FATAL_ERROR
은 숫자 값입니다 (그렇지 않으면 컴파일되지 않습니다).
return MSB_RETURN_TYPE_FATAL_ERROR | 1;
차례가되는 :
return EMAIL_SERVER_ADAPTER_FATAL_ERROR;
가 확장됩니다 :
인수를 위해서, 우리는로 0x100
그래서 다음과 같은 코드를 만들 수 있습니다
return 0x100 | 1;
차례로 하지만 원칙은 여전히 적용 -
return 0x101;
물론 MSB_RETURN_TYPE_FATAL_ERROR이로 0x100 이외는 아마도 : 같은.
"매크로 호출"이 아닙니다. 그것은 "매크로 정의"입니다. 그래서 질문은 말이되지 않습니다. –
@kerreksb 실제 질문 제목의 문맥에서 매크로 정의에서 '|'은 무엇을 의미합니까? –
@DanF 저는 Kerrek이 게시물의 몸에있는 질문을 언급하고 있다고 생각합니다. 전화가 해결 되었습니까? " – JBL