Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Atribuição usada como condição
O valor de teste em uma expressão condicional é o resultado de uma atribuição.
Uma atribuição tem um valor (o valor no lado esquerdo da atribuição) que pode ser usado legalmente em outra expressão, incluindo uma expressão de teste.
O exemplo a seguir gera C4706:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if (a = b) // C4706
{
}
}
Suprima o aviso com a expressão ((
))
. Por exemplo:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ((a = b)) // No warning
{
}
}
Se a sua intenção é testar uma relação, não fazer uma atribuição, use o operador ==
. Por exemplo, o seguinte testa se a e b são iguais:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if (a == b)
{
}
}
Se pretendes tornar o teu valor de teste o resultado de uma atribuição, assegura-te de que a atribuição seja diferente de zero ou não nula. Por exemplo, o código a seguir não gera esse aviso:
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ((a = b) != 0)
{
}
}