Derleyici Uyarısı (düzey 4) C4706
koşullu ifade içinde atama
Koşullu ifadedeki test değeri atamanın sonucuydu.
Atamanın, test ifadesi de dahil olmak üzere başka bir ifadede yasal olarak kullanılabilecek bir değeri (atamanın sol tarafındaki değer) vardır.
Aşağıdaki örnek C4706 oluşturur:
// C4706a.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( a = b ) // C4706
{
}
}
Uyarı, test koşulunun etrafındaki parantezleri iki katına çıkarsanız bile gerçekleşir:
// C4706b.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( ( a = b ) ) // C4706
{
}
}
Amacınız bir ilişkiyi test etmek ve atama yapmak istemiyorsanız işlecini ==
kullanın. Örneğin, aşağıdaki satır a ve b'nin eşit olup olmadığını sınar:
// C4706c.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( a == b )
{
}
}
Test değerinizi bir atamanın sonucu yapmayı planlıyorsanız, atamanın sıfır olmadığından veya null olmadığından emin olmak için test edin. Örneğin, aşağıdaki kod bu uyarıyı oluşturmaz:
// C4706d.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( ( a = b ) != 0 )
{
}
}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin