개요
루프 조건에서 서로 다른 너비의 타입을 비교하면 루프가 종료되지 않을 수 있습니다.
추천
루프 조건에서 적절한 형식을 사용합니다.
예시
이 예제에서는 인수 값이 SHRT_MAX보다 크면 비교 결과가 무한 루프가 될 수 있습니다.
void InfiniteLoop(int a)
{
for (short i = 0; i < a; i++) // BUG: infinite loop
{
// ...
}
}
버그를 수정하기 위해 변수 i 의 형식을 a의 너비와 일치하도록 변경합니다.
void NotInfiniteLoop(int a)
{
for (int i = 0; i < a; i++)
{
// ...
}
}
추가 정보
이 쿼리는 Microsoft GitHub CodeQL 리포지토리에서 찾을 수 있습니다. Windows 드라이버 개발자가 CodeQL을 다운로드하고 실행하는 방법에 대한 자세한 내용은 CodeQL 및 정적 도구 로고 테스트 페이지를 참조하세요.