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.
Proměnná obsahuje hodnotu, kterou je potřeba prozkoumat.
Toto upozornění značí, že volající funkce nekontroluje hodnotu zadané proměnné, která byla zadána funkcí. Vrácená hodnota je opatřena poznámkami _Check_return_ , ale volající funkce buď nepoužívá hodnotu, nebo ji přepíše bez prozkoumání.
Toto upozornění se podobá upozornění C6031, ale je hlášeno pouze v případě, že kód netestuje nebo prozkoumá hodnotu proměnné, například při použití v porovnání. Jednoduše přiřazování hodnoty se nepovažuje za dostatečné vyšetření, aby se zabránilo tomuto upozornění. Aliasing výsledku z funkce se považuje za dostatečné vyšetření, ale samotný výsledek by měl být opatřen poznámkami _Check_return_.
Některé funkce (například strlen) existují téměř výhradně pro jejich návratové hodnoty, takže pro ně dává smysl mít poznámku _Check_return_ . U těchto funkcí může nástroj Analýza kódu hlásit toto upozornění, když je vrácená hodnota nepoužitá. Toto upozornění obvykle značí, že kód je nesprávný, například může obsahovat zbytkový kód, který by se dal odstranit. V některých výjimečných případech se ale návratová hodnota záměrně nepoužívá. Nejběžnější z těchto instancí je, kdy je vrácena délka řetězce, ale ve skutečnosti se nepoužívá před provedením nějakého jiného testu. Tento druhý test způsobí simulaci cesty, kde délka řetězce skončí nepoužívané. V takovém případě může být kód správný, ale může být neefektivní.
Existují dvě hlavní strategie pro řešení těchto případů, kdy je vrácená hodnota nevyužitá:
Změnit pořadí kódu tak, aby délka řetězce byla vrácena pouze podél cesty, kde je potřeba.
#pragma Pomocí upozornění potlačíte upozornění – pokud změníte pořadí kódu, bude kód příliš složitý nebo jinak méně užitečný.
Příklad
Následující příklad kódu vygeneruje toto upozornění:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
Následující příklad kódu zabrání tomuto upozornění:
IoGetDmaAdapter(pPDO, &DevDesc, &nMapRegs);
//...
if (nMapRegs < MIN_REQUIRED_MAPS) {
//...
}