다음을 통해 공유


컴파일러 경고(수준 4) C4706

조건으로 사용되는 할당

조건식의 테스트 값은 할당의 결과입니다.

할당에는 테스트 식을 포함하여 다른 식에서 합법적으로 사용할 수 있는 값(할당 왼쪽의 값)이 있습니다.

다음 샘플에서는 C4706을 생성합니다.

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a = b) // C4706
   {
   }
}

(( ))사용하여 경고를 표시하지 않습니다. 예를 들어:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b)) // No warning
   {
   }
}

할당하지 않고 관계를 테스트하려는 경우 == 연산자를 사용합니다. 예를 들어 다음 테스트는 a와 b가 같은지 여부를 테스트합니다.

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a == b)
   {
   }
}

테스트 값을 할당의 결과로 만들려는 경우 테스트하여 할당이 0이 아니거나 null이 아닌지 확인합니다. 예를 들어 다음 코드는 이 경고를 생성하지 않습니다.

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b) != 0)
   {
   }
}