Sdílet prostřednictvím


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

přiřazení v rámci podmíněného výrazu

Hodnota testu v podmíněného výrazu byla výsledkem přiřazení.

Přiřazení je hodnota (hodnota na levé straně přiřazení), který lze legálně v jiného výrazu, včetně testovací výraz.

Následující ukázka generuje upozornění C4706:

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

Upozornění dojde i v případě, že Dvojité závorky testovací podmínka:

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

Má-li otestovat vztah a provést přiřazení, použít == operátor.Například následující řádek testy zda a b jsou shodné:

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

Pokud máte v úmyslu provést test výsledek přiřazení hodnoty, test k zajištění, že přiřazení je nulová nebo not null.Například následující kód nebude generovat upozornění:

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