共用方式為


編譯器警告 (層級 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 )
   {
   }
}