共用方式為


編譯器警告 (層級 4) C4706

在條件運算式中使用指派運算子

條件運算式中的測試值是指派的結果。

指派中有一值 (在指派左側的值) 可以合法使用在其他運算式中,包括測試運算式。

下列範例會產生 C4706:

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

即使您為測試條件加上兩層括弧,還是會發生此警告:

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

如果您是要測試關聯,而不是要指派,請使用 == 運算子。 例如,下列程式行會測試 a 和 b 是否相等:

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

如果您想要將測試值設為指派的結果,請進行測試以確保指派是非零或不是 Null。 例如,下列程式碼就不會產生此警告:

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