C6287
경고 C6287: 코드가 중복됩니다. 왼쪽 하위 식과 오른쪽 하위 식이 동일합니다.
이 경고는 식에 중복되는 요소가 있음을 나타냅니다.
코드를 검사하지 않고는 이 문제의 심각도를 판단하기 어렵습니다. 자체적인 중복 테스트는 무해하지만 두 번째 테스트를 삭제하면 심각한 결과가 나타날 수 있습니다. 코드를 검사하여 테스트가 생략되지 않도록 해야 합니다.
예제
다음 코드에서는 이 경고를 발생시킵니다.
void f(int x)
{
if ((x == 1) && (x == 1))
{
//logic
}
if ((x != 1) || (x != 1))
{
//logic
}
}
다음 코드에서는 이 경고를 해결하는 다양한 방법을 보여 줍니다.
void f(int x, int y)
{
/* Remove the redundant sub-expression: */
if (x == 1)
{
// logic
}
if (x != 1)
{
// logic
}
/* or test the missing variable: */
if ((x == 1) && (y == 1))
{
// logic
}
if ((x != 1) || (y != 1))
{
// logic
}
}