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.
|
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
Inne zasoby
Korzystanie z adnotacji SAL w celu redukowanie defektów kodu C/C++