다음을 통해 공유


컴파일러 경고(수준 1) C4293

'operator': 시프트 카운트가 음수이거나 너무 크고 정의되지 않은 동작

시프트 수가 음수이거나 너무 크면 결과 이미지의 동작이 정의되지 않습니다.

설명

이 문제를 해결하려면 첫 번째 피연산자의 캐스트를 사용하여 결과 형식의 크기로 확장할 수 있습니다.

예시

다음 샘플에서는 C4293을 생성하고 이를 해결하는 방법을 보여 줍니다.

// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi)
{
   return (hi << 32) | lo;   // C4293

   // In C, try the following line instead:
   // return ( (unsigned __int64)hi << 32) | lo;
   // In C++, try this line instead:
   // return (static_cast<unsigned __int64>(hi) << 32) | lo;
}