Udostępnij za pośrednictwem


Funkcje wewnętrzne

Wyrażenie w SAL może być wyrażeniem C/C++, pod warunkiem, że to jest wyrażenie, który nie ma skutków ubocznych — na przykład ++,--, a wywołania funkcji wszystkie skutki uboczne, w tym kontekście. SAL zapewnia jednak niektórych przedmiotów podobnych do funkcji i niektóre symbole zastrzeżone, które mogą być używane w wyrażeniach SAL.Są one określane jako Funkcje.

Ogólnego zastosowania

Następujące adnotacje funkcja instrinsic przewidują ogólne narzędzie SAL.

Adnotacja

Opis

_Curr_

Synonim dla obiektu, który jest aktualnie odnotowany. Gdy _At_ adnotacji jest w użyciu, _Curr_ jest taki sam jak pierwszy parametr _At_. W przeciwnym razie jest parametr lub wartość całego funkcja tam i z powrotem z adnotacja jest leksykalnie skojarzony.

_Inexpressible_(expr)

Wyraża sytuacji, gdy rozmiar buforu jest zbyt skomplikowane do przedstawienia przy użyciu wyrażenia adnotacji — na przykład, kiedy jest ona obliczana przez skanowanie zestaw danych wejściowych i następnie liczenia wybranych składników.

_Nullterm_length_(param)

paramto liczba elementów w buforze do, ale nie w tym znakiem null.Można stosować do dowolnego bufora typu-aggregate, niż void.

_Old_(expr)

Gdy jest oceniane w warunku wstępnego, _Old_ zwraca wartość wejściowa expr. Podczas szacowania w stanie po okresie, zwracana jest wartość expr jak czy zostały ocenione w warunku wstępnego.

_Param_(n)

nTh parametr do funkcji, licząc od 1 do n, i n jest stałą integralną literału.Jeśli parametr ma nazwę, ta adnotacja jest identyczny dostęp do parametru Nazwa.

[!UWAGA]

nodnosi się do parametrów pozycyjne, które są definiowane przez wielokropek lub mogą być używane w funkcji prototypów gdzie nazwy nie są używane.

return

C/C++ zarezerwowane słowo kluczowe return może służyć w wyrażeniu SAL aby wskazać wartość zwracana funkcji. Wartość jest dostępna tylko w stanie post; jest to błąd składni, aby używać go w stanie sprzed.

Ciąg znaków szczególnych

Następujące adnotacje funkcja wewnętrzna włączyć manipulowania ciągami znaków.Wszystkie cztery funkcje te służą temu samemu celowi: zwraca liczbę elementów tego typu, który znajduje się przed znakiem null.Różnice są typami danych w elementach, które są określone.Należy zauważyć, że jeśli chcesz określić długość zakończony znakiem null buforu, który nie składa się znaków, należy użyć _Nullterm_length_(param) adnotacji z poprzedniej sekcji.

Adnotacja

Opis

_String_length_(param)

paramto liczba elementów w ciągu do, ale nie w tym znakiem null.Ta adnotacja jest zarezerwowany dla typów ciąg znaków.

strlen(param)

paramto liczba elementów w ciągu do, ale nie w tym znakiem null.Ta adnotacja jest zarezerwowany do użycia w postaci tablic i podobny do funkcji środowiska wykonawczego języka C strlen ().

wcslen(param)

paramjest to liczba elementów w ciągu maksymalnie (z wyjątkiem) znakiem null.Ta adnotacja jest zarezerwowany do użytku na znak dwubajtowy tablic i podobny do funkcji środowiska wykonawczego języka C wcslen().

Zobacz też

Informacje

Dodawanie adnotacji do parametrów funkcji i zwracanych wartości

Zachowanie funkcji dodawania adnotacji

Dodawanie adnotacji struktur i klas

Dodawanie adnotacji do zachowania blokującego

Określanie warunków pojawiania się adnotacji

Najlepsze praktyki i przykłady (SAL)

Koncepcje

Poznanie SAL

Inne zasoby

Korzystanie z adnotacji SAL w celu redukowanie defektów kodu C/C++