Sdílet prostřednictvím


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 nparametr funkce, počítá se od 1 do na 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é