Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A függvényparaméterek és a visszaadott értékek megjegyzése mellett a teljes függvény tulajdonságait is megjegyzésekkel láthatja el.
Függvény annotációk
A következő széljegyzetek a függvény egészére vonatkoznak, és ismertetik, hogyan viselkedik, vagy mit vár el az igaztól.
| Jegyzetelés | Leírás |
|---|---|
_Called_from_function_class_(name) |
Nem önállónak szánták; helyett ez egy predikátum, amelyet a _When_ széljegyzethez kell használni. További információ: A széljegyzetek alkalmazásának helye és ideje.A name paraméter egy tetszőleges sztring, amely egyes függvények deklarációjában is megjelenik egy _Function_class_ annotációban.
_Called_from_function_class_ nem nulla értéket ad vissza, ha az aktuálisan elemzett függvény meg van jegyezve a(z) _Function_class_ használatával, amelynek ugyanaz az értéke, mint a(z) name; ellenkező esetben nulla értéket ad vissza. |
_Check_return_ |
Megjegyzést fűz egy visszatérési értékhez, és azt állítja, hogy a hívónak meg kell vizsgálnia. Az ellenőrző hibát jelez, ha a függvény üres környezetben van meghívva. |
_Function_class_(name) |
A name paraméter egy tetszőleges sztring, amelyet a felhasználó jelöl ki. Olyan névtérben létezik, amely különbözik a többi névtértől. Egy függvény, függvénymutató vagy – ami a legléremesebb – egy függvénymutató-típus egy vagy több függvényosztályhoz tartozhat. |
_Raises_SEH_exception_ |
Megjelöl egy függvényt, amely mindig strukturált kivételkezelő (SEH) kivételt hoz létre, _When_ és _On_failure_ feltételek alapján. További információ: A széljegyzetek alkalmazásának helye és ideje. |
_Maybe_raises_SEH_exception_ |
Annotál egy függvényt, amely opcionálisan SEH-kivételt okozhat, a _When_ és _On_failure_ feltételek szerint. |
_Must_inspect_result_ |
Megjegyzést fűz a kimeneti értékekhez, beleértve a visszatérési értéket, a paramétereket és a globális értékeket. Az elemző hibát jelez, ha a jegyzetekkel ellátott objektum értékét később nem vizsgálják meg. A "Vizsgálat" magában foglalja, hogy feltételes kifejezésben használják-e, kimeneti paraméterhez vagy globálishoz van-e hozzárendelve, vagy paraméterként van-e átadva. A visszatérési értékek esetén _Must_inspect_result__Check_return_-et jelent. |
_Use_decl_annotations_ |
Használható függvénydefinícióban (más néven függvénytörzsben) a fejléc széljegyzeteinek listája helyett. A _Use_decl_annotations_ használat során az ugyanazon függvény hatókörön belüli fejlécén megjelenő széljegyzeteket a rendszer úgy használja, mintha a széljegyzetet tartalmazó _Use_decl_annotations_ definícióban is szerepelnének. |
Sikeres/sikertelen széljegyzetek
A függvények sikertelenek lehetnek, és ha igen, az eredmények hiányosak lehetnek, vagy eltérhetnek az eredményektől, ha a függvény sikeres. Az alábbi lista széljegyzetei módot nyújtanak a hiba viselkedésének kifejezésére. Ezeknek a széljegyzeteknek a használatához engedélyeznie kell őket a sikeresség megállapításához; _Success_ ezért széljegyzetre van szükség. Figyelje meg, hogy NTSTATUS és HRESULT már rendelkezik _Success_ beépített széljegyzettel; ha azonban saját _Success_ széljegyzetet ad meg NTSTATUS-re vagy HRESULT-re, az felülbírálja a beépített széljegyzetet.
| Jegyzetelés | Leírás |
|---|---|
_Always_(anno_list) |
Egyenértékű a anno_list _On_failure_(anno_list); azaz a anno_list jegyzetei alkalmazandók, függetlenül attól, hogy a függvény sikeres vagy sem. |
_On_failure_(anno_list) |
Csak akkor használható, ha a _Success_ a függvényt is annotálja – akár explicit módon, akár implicit módon egy typedefen keresztül a _Return_type_success_ segítségével. Ha a _On_failure_ annotáció jelen van egy függvény paraméteren vagy visszatérési értéken, minden annotáció a anno_list-ben úgy viselkedik, mintha _When_(!expr, anno)-ként lett volna kódolva, ahol expr a szükséges _Success_ annotáció paramétere. Ez azt jelenti, hogy az összes utó-feltétel hallgatólagos alkalmazása _Success_ nem vonatkozik _On_failure_-re. |
_Return_type_success_(expr) |
Alkalmazható egy típusdefre. Azt jelzi, hogy minden olyan függvény, amely ezt a típust adja vissza, és nincs kifejezetten _Success_ megadva, úgy van jelölve, mintha _Success_(expr) lenne.
_Return_type_success_ nem használható függvényen vagy függvénymutató-típusdefen. |
_Success_(expr) |
expr egy olyan kifejezés, amely egy rvalue értéket ad. Ha a _Success_ annotáció jelen van egy függvénydeklaráción vagy -definíción, a függvényen és az utófeltételben lévő összes annotáció (anno) úgy viselkedik, mintha _When_(expr, anno) kódként lenne megadva. A _Success_ széljegyzet csak egy függvényen használható, a paramétereken és a visszatérési típuson nem. Egy függvény legfeljebb egy _Success_ széljegyzetet tartalmazhat, és nem szerepelhet egyikben sem _When_, _At_sem _Group_. További információ: A széljegyzetek alkalmazásának helye és ideje. |
Lásd még
- C/C++ kódhibák csökkentése SAL-széljegyzetek használatával
- A SAL ismertetése
- Függvényparaméterek és visszatérési értékek megjegyzése
- Szerkezetek és osztályok jegyzetelése
- A zárolási viselkedés megjegyzésekkel való ellátása
- Meghatározhatja, hogy mikor és hol alkalmazandó egy megjegyzés
- Belső függvények
- Ajánlott eljárások és példák