Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 4) C4706

přiřazení použité jako podmínka

Poznámky

Testovací hodnota v podmíněném výrazu je výsledkem přiřazení.

Přiřazení má hodnotu (hodnotu na levé straně přiřazovacího výrazu), kterou lze legálně použít v jiném výrazu, včetně testovacího výrazu.

Example

Následující příklad vygeneruje C4706:

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

Potlačte upozornění pomocí výrazu (()). Například:

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

Pokud vaším záměrem je otestovat relaci, ne provést přiřazení, použijte operátor ==. Následující testy například testují, zda jsou rovny a b:

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

Pokud máte v úmyslu vytvořit testovací hodnotu, která je výsledkem přiřazení, otestujte, jestli je přiřazení nenulové nebo neprázdné. Například následující kód negeneruje toto upozornění:

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