컴파일러 경고(수준 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;
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기