Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přehled
Porovnání mezi typy s různými šířkami v podmínce smyčky může způsobit nezdaření ukončení smyčky.
Doporučení
V podmínce smyčky použijte odpovídající typy.
Příklad
V tomto příkladu může výsledek porovnání vést k nekonečné smyčce, pokud je hodnota argumentu a větší než SHRT_MAX.
void InfiniteLoop(int a)
{
for (short i = 0; i < a; i++) // BUG: infinite loop
{
// ...
}
}
Abychom chybu vyřešili, měníme typ proměnné tak, aby odpovídal šířce proměnné:
void NotInfiniteLoop(int a)
{
for (int i = 0; i < a; i++)
{
// ...
}
}
Další podrobnosti
Tento dotaz najdete v úložišti Microsoft GitHub CodeQL. Podrobnosti o tom, jak mohou vývojáři ovladačů systému Windows stáhnout a spustit CodeQL, najdete na stránce CodeQL and the Static Tools Logo Test.