Share via


Angeben, wann und wo eine Anmerkung gültig ist

Wenn eine Anmerkung bedingt ist, muss sie möglicherweise andere Anmerkungen, die dem Analyzer anzugeben.Wenn eine Funktion eine Variable verfügt, die entweder synchron oder asynchron sein kann, verhält sich die Funktion, wie folgt: Im synchronen Fall folgt sie immer schließlich, aber im asynchronen Fall meldet sie ein Fehler, wenn sie nicht sofort ausführen kann.Wenn die Funktion synchron aufgerufen wird, stellt das Überprüfen des Ergebniswerts keinen Wert an den Codeanalyzer bereit, da sie nicht zurückgegeben würde.Wenn die Funktion asynchron aufgerufen wird und das Ergebnis der Funktion nicht überprüft wird, kann ein ernster Fehler auftreten.Dieses Beispiel veranschaulicht eine Situation, in der Sie _When_ verwenden könnten, das später in diesem Anmerkung-beschrieben wurde Artikel-zu aktivieren, Überprüfung.

Strukturelle Anmerkungen

So steuern, wann und wo Anmerkungen gelten, die folgenden strukturellen Anmerkungen verwenden Sie.

Anmerkung

Beschreibung

_At_(expr, anno-list)

expr ist ein Ausdruck, der als l-Wert ergibt.Die Anmerkungen in anno-list werden auf das Objekt angewendet, das von expr genannt wird.Für jede Anmerkungen in anno-list, wird expr in der Vorbedingung, wenn die Anmerkung in der Vorbedingung interpretiert wird, und in der Nachbedingung interpretiert, wenn die Anmerkung in der Nachbedingung interpretiert wird.

_At_buffer_(expr, iter, elem-count, anno-list)

expr ist ein Ausdruck, der als l-Wert ergibt.Die Anmerkungen in anno-list werden auf das Objekt angewendet, das von expr genannt wird.Für jede Anmerkungen in anno-list, wird expr in der Vorbedingung, wenn die Anmerkung in der Vorbedingung interpretiert wird, und in der Nachbedingung interpretiert, wenn die Anmerkung in der Nachbedingung interpretiert wird.

iter ist der Name einer Variablen, die der Anmerkung festgelegt wird (einschließlich anno-list).iter verfügt über einen impliziten Typ long.Identisch mit Variablen in einem einschließenden Bereich werden aus der Auswertung ausgeblendet.

elem-count ist ein Ausdruck, der eine ganze Zahl ausgewertet wird.

_Group_(anno-list)

Alle Anmerkungen in anno-list betrachtet werden, jeden Qualifizierer verfügen, der auf die Gruppenanmerkung gilt, die jeder Anmerkung angewendet wird.

_When_(expr, anno-list)

expr ist ein Ausdruck, der zu bool konvertiert werden kann.Wenn er (true) ungleich 0 (null) ist, die Anmerkungen, die in anno-list gelten als anwendbar angegeben werden.

Standardmäßig für jede Anmerkungen in anno-list, wird expr wie mithilfe der Eingabewerte, wenn die Anmerkung eine Vorbedingung ist, und wie mit der Ausgabewerte interpretiert, wenn die Anmerkung eine Nachbedingung ist.Um den Standard zu überschreiben, können Sie die _Old_ systeminterne Funktion verwenden wenn Sie eine Nachbedingung auswerten dass Eingabewerte verwendet werden sollen.

HinweisHinweis
Verschiedene Anmerkungen würden als Folge der Anwendung von _When_ wenn ein änderbares Beispiel werden, *pLength aktiviert möglicherweise - wird eingesetzt, da das Ergebnis ausgewertete möglicherweise expr in der Vorbedingung aus dem ausgewerteten Ergebnis in der Nachbedingung unterscheidet.

Siehe auch

Referenz

Hinzufügen einer Anmerkung zu Funktionsparametern und Rückgabewerten

Hinzufügen einer Anmerkung zum Funktionsverhalten

Hinzufügen einer Anmerkung zu Strukturen und Klassen

Hinzufügen einer Anmerkung zum Sperrverhalten

Systeminterne Funktionen

Empfohlene Vorgehensweisen und Beispiele (SAL)

Konzepte

Einführung in SAL

Weitere Ressourcen

Verwenden von SAL-Anmerkungen zum Reduzieren von C/C++-Codefehlern