Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
назначение, используемое в качестве условия
Значение теста в условном выражении является результатом назначения.
Назначение имеет значение (значение слева от назначения), которое может использоваться юридически в другом выражении, включая тестовое выражение.
Следующий пример вызывает 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)
{
}
}
Если вы планируете сделать значение теста результатом назначения, проверьте, что назначение не равно нулю или не равно null. Например, следующий код не создает это предупреждение:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ((a = b) != 0)
{
}
}