Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Áttekintés
A ciklusfeltételek különböző szélességű típusainak összehasonlítása a ciklus leállását okozhatja.
Ajánlás
Használjon megfelelő típusokat a ciklusfeltételben.
példa
Ebben a példában az összehasonlítás eredménye végtelen ciklust eredményezhet, ha az argumentum értéke: a nagyobb, mint SHRT_MAX:
void InfiniteLoop(int a)
{
for (short i = 0; i < a; i++) // BUG: infinite loop
{
// ...
}
}
A hiba kijavításához az i változó típusát úgy módosítjuk, hogy az megfeleljen a következő szélességnek:
void NotInfiniteLoop(int a)
{
for (int i = 0; i < a; i++)
{
// ...
}
}
További részletek
Ez a lekérdezés a Microsoft GitHub CodeQL-adattárban található. A CodeQL és a Static Tools emblématesztelési oldalán részletesen tájékozódhat arról, hogy a Windows-illesztőprogram-fejlesztők hogyan tölthetik le és futtathatják a CodeQL-t.