Angeben, wann und wo eine Anmerkung gültig ist

Wenn eine Anmerkung bedingt ist, kann es andere Anmerkungen erfordern, um dies für den Analyzer anzugeben. Wenn eine Funktion beispielsweise eine Variable aufweist, die entweder synchron oder asynchron sein kann, verhält sich die Funktion wie folgt: Im synchronen Fall ist sie immer erfolgreich, meldet aber im asynchronen Fall einen Fehler, wenn sie nicht sofort erfolgreich ist. Wenn die Funktion synchron aufgerufen wird, stellt die Überprüfung des Ergebniswerts keinen Wert für die Codeanalyse bereit, da sie nicht zurückgegeben wurde. Wenn die Funktion jedoch asynchron aufgerufen wird und das Funktionsergebnis nicht überprüft wird, kann ein schwerwiegender Fehler auftreten. In diesem Beispiel wird eine Situation veranschaulicht, in der Sie die _When_ Anmerkung ( weiter unten in diesem Artikel beschrieben) verwenden können, um die Überprüfung zu aktivieren.

Strukturelle Anmerkungen

Um zu steuern, wann und wo Anmerkungen angewendet werden, verwenden Sie die folgenden strukturellen Anmerkungen.

Anmerkung Beschreibung
_At_(expr, anno-list) expr ist ein Ausdruck, der einen lvalue zurückgibt. Die Anmerkungen in anno-list werden auf das Objekt angewendet, das von expr. Für jede Anmerkung in anno-list, wird in der Vorbedingung interpretiert, expr wenn die Anmerkung in der Vorbedingung interpretiert wird, und in der Nachbedingung, wenn die Anmerkung in der Nachbedingung interpretiert wird.
_At_buffer_(expr, iter, elem-count, anno-list) expr ist ein Ausdruck, der einen lvalue zurückgibt. Die Anmerkungen in anno-list werden auf das Objekt angewendet, das von expr. Für jede Anmerkung in anno-list, expr wird in der Vorbedingung interpretiert, wenn die Anmerkung in der Vorbedingung interpretiert wird, und in der Nachbedingung, wenn die Anmerkung in der Nachbedingung interpretiert wird.

iter ist der Name einer Variablen, die auf die Anmerkung (einschließlich) anno-listfestgelegt ist. iter verfügt über einen impliziten Typ long. Identisch benannte Variablen in jedem eingeschlossenen Bereich werden aus der Auswertung ausgeblendet.

elem-count ist ein Ausdruck, der als ganze Zahl ausgewertet wird.
_Group_(anno-list) Die Anmerkungen in anno-list werden alle als Qualifizierer betrachtet, die für die Gruppenanmerkung gelten, die auf jede Anmerkung angewendet wird.
_When_(expr, anno-list) expr ist ein Ausdruck, der in bool. Wenn es sich nicht um Null (true) handelt, gelten die anmerkungen, die angegeben anno-list werden.

Für jede Anmerkung in anno-listwird expr standardmäßig die Verwendung der Eingabewerte interpretiert, wenn die Anmerkung eine Voraussetzung ist, und wie die Ausgabewerte verwendet werden, wenn die Anmerkung eine Nachbedingung ist. Um den Standardwert außer Kraft zu setzen, können Sie die _Old_ systeminterne Funktion verwenden, wenn Sie eine Nachbedingung auswerten, um anzugeben, dass Eingabewerte verwendet werden sollen. Hinweis: Verschiedene Anmerkungen können als Folge der Verwendung _When_ aktiviert werden, wenn ein änderbarer Wert , z. B. , beteiligt ist, *pLengthda das ausgewertete Ergebnis der expr Vorbedingung von seinem ausgewerteten Ergebnis in der Nachbedingung abweichen kann.

Siehe auch