Vnitřní funkce
Výraz v SAL může být výraz jazyka 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 jako funkce a některé rezervované symboly, které lze použít ve výrazech SAL. Tyto funkce se označují jako vnitřní funkce.
Pro obecné účely
Následující anotace instrinsické funkce poskytují obecný nástroj pro SAL.
| Poznámka | Popis |
|---|---|
_Curr_ |
Synonymum pro objekt, který je právě anotován. Když _At_ se anotace používá, _Curr_ je stejný jako první parametr pro _At_ . V opačném případě se jedná o parametr nebo celou funkci nebo návratovou hodnotu, ke které je anotace lexikálně přidružená. |
_Inexpressible_(expr) |
Vyjadřuje situaci, kdy je velikost vyrovnávací paměti příliš složitá na to, aby ji reprezentoval výraz poznámek – například když se vypočítá tak, že se naskenuje vstupní datová sada a pak počítá vybrané členy. |
_Nullterm_length_(param) |
param je počet prvků ve vyrovnávací paměti až do , ale bez zahrnutí ukončovací znaky null. Můžete ji použít na libovolnou vyrovnávací paměť ne agregovaného typu bez void. |
_Old_(expr) |
Když se vyhodnocuje v předběžné podmínce, _Old_ vrátí vstupní hodnotu expr . Při vyhodnocení v podmínce vrátí hodnotu , expr protože by byla vyhodnocena v předběžné podmínce. |
_Param_(n) |
Parametr n th funkce počítán od 1 do n , a je literálovou n celočíselnou konstantou. Pokud má parametr název , je tato poznámka stejná jako přístup k parametru podle názvu. Poznámka: může odkazovat na poziční parametry, které jsou definovány třemi tečkami nebo mohou být použity v prototypech funkce, kde se názvy nepoužíly. |
return |
Vyhrazené klíčové slovo C/C++ lze použít ve výrazu SAL k označení return návratové hodnoty funkce. Hodnota je k dispozici pouze ve stavu post. Jedná se o chybu syntaxe, která se používá v předběžném stavu. |
Specifické pro řetězec
Následující poznámky vnitřní funkce umožňují manipulaci s řetězci. Všechny čtyři z těchto funkcí mají stejný účel: vrátit počet prvků typu nalezených před ukončením hodnoty null. Rozdíly jsou druhy dat v prvcích, na které se odkazuje. Všimněte si, že pokud chcete zadat délku vyrovnávací paměti ukončené hodnotou null, která se neskládá ze znaků, 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 , ale bez zahrnutí 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 , ale bez zahrnutí ukončovací znak null. Tato poznámka je vyhrazená pro použití v polích znaků a podobá se funkci modulu runtime jazyka C strlen(). |
wcslen(param) |
param je počet prvků v řetězci až do (ale bez zahrnutí) ukončovací znak null. Tato poznámka je vyhrazená pro použití v širokých polí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