Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Genel Bakış
Döngü koşulundaki farklı genişlik türleri arasındaki karşılaştırmalar döngünün sonlandırılamamasına neden olabilir.
Tavsiye
Döngü koşulunda uygun türleri kullanın.
Örnek
Bu örnekte, a bağımsız değişkeninin değeri SHRT_MAX'den büyükse, karşılaştırmanın sonucu sonsuz döngüye neden olabilir.
void InfiniteLoop(int a)
{
for (short i = 0; i < a; i++) // BUG: infinite loop
{
// ...
}
}
Hatayı düzeltmek için i değişkeninin türünü a'nın genişliğiyle eşleşecek şekilde değiştiriyoruz.
void NotInfiniteLoop(int a)
{
for (int i = 0; i < a; i++)
{
// ...
}
}
Ek ayrıntılar
Bu sorgu Microsoft GitHub CodeQL deposunda bulunabilir. Windows Sürücüsü geliştiricilerinin CodeQL'i nasıl indirip çalıştırabileceği hakkında ayrıntılı bilgi için CodeQL ve Statik Araçlar Logo Testi sayfasına bakın.