Vnitřní funkce
Výrazem v SAL může být výraz C/C++, za předpokladu, že se jedná o výraz, který nemá vedlejší účinky – například ++, --, a volání funkcí mají v tomto kontextu vedlejší účinky. Sal ale poskytuje některé objekty podobné funkcím a některé rezervované symboly, které je možné použít ve výrazech SAL. Označují se jako vnitřní funkce.
Pro obecné účely
Následující poznámky k funkci instrinsic poskytují obecný nástroj pro SAL.
Poznámka | Popis |
---|---|
_Curr_ |
Synonymum pro objekt, který je aktuálně opatřen poznámkami. _At_ Pokud se používá poznámka, _Curr_ je stejná jako první parametr pro _At_ . V opačném případě se jedná o parametr nebo celou funkci/návratovou hodnotu, ke které je poznámka lexicky přidružena. |
_Inexpressible_(expr) |
Vyjadřuje situaci, kdy je velikost vyrovnávací paměti příliš složitá, aby představovala pomocí anotačního výrazu – například při jeho výpočtu skenováním vstupní datové sady a následným počítáním vybraných členů. |
_Nullterm_length_(param) |
param je počet prvků v vyrovnávací paměti až do, ale neobsahuje ukončovací znak null. Lze ji použít na jakoukoli vyrovnávací paměť neagregovaného, neagregovaného typu. |
_Old_(expr) |
Při vyhodnocování v předběžném stavu _Old_ vrátí vstupní hodnotu expr . Když se vyhodnotí v po podmínce, vrátí hodnotu expr , protože by byla vyhodnocena jako předběžná podmínka. |
_Param_(n) |
Tento n parametr funkce, počítá se od 1 do n a n je literální integrální konstanta. Pokud je parametr pojmenovaný, je tato poznámka shodná s přístupem k parametru podle názvu. Poznámka: n Může odkazovat na poziční parametry definované třemi tečkami nebo mohou být použity v prototypech funkcí, kde se názvy nepoužívají. |
return |
Rezervované klíčové slovo return C/C++ lze použít ve výrazu SAL k označení návratové hodnoty funkce. Hodnota je k dispozici pouze v post state; jedná se o chybu syntaxe, která se používá v představném stavu. |
Specifické pro řetězec
Následující vnitřní poznámky k funkcím umožňují manipulaci s řetězci. Všechny čtyři z těchto funkcí slouží ke stejnému účelu: k vrácení počtu prvků typu nalezeného před ukončovacím znakem null. Rozdíly jsou druhy dat v prvech, na které se odkazuje. Všimněte si, že pokud chcete zadat délku vyrovnávací paměti s ukončenou hodnotou null, která není tvořena znaky, použijte poznámku _Nullterm_length_(param)
z předchozí části.
Poznámka | Popis |
---|---|
_String_length_(param) |
param je počet prvků v řetězci až do konce, ale neobsahuje ukončovací znak null. Tato poznámka je vyhrazená pro typy řetězců znaků. |
strlen(param) |
param je počet prvků v řetězci až do konce, ale neobsahuje ukončovací znak null. Tato poznámka je vyhrazena pro použití v maticích znaků a podobá se funkci C Runtime strlen(). |
wcslen(param) |
param je počet prvků v řetězci až do (ale nikoli včetně) ukončovací funkce null. Tato poznámka je vyhrazena pro použití v širokých maticích znaků a podobá se funkci modulu runtime jazyka C wcslen(). |
Viz také
- Použití poznámek SAL k snížení míry výskytu závad kódu C/C++
- Porozumění SAL
- Zadávání poznámek k parametrům funkcí a návratovým hodnotám
- Zadávání poznámek k chování funkcí
- Zadávání poznámek ke strukturám a třídám
- Zadávání poznámek o chování při zamykání
- Určení, kdy a kde se má poznámka použít
- Doporučené postupy a příklady