共用方式為


指定套用註釋的時機和位置

當批注有條件時,可能需要其他批注來指定給分析器。 例如,如果函式的變數可以是同步或異步,則函式的行為如下:在同步案例中,它一律會成功,但在異步案例中,如果無法立即成功,則會報告錯誤。 以同步方式呼叫函式時,檢查結果值不會為程式代碼分析器提供任何值,因為它不會傳回。 不過,當以異步方式呼叫函式且未檢查函式結果時,可能會發生嚴重的錯誤。 此範例說明您可以使用 _When_ 本文稍後所述的註釋來啟用檢查的情況。

結構批注

若要控制批注套用的時機和位置,請使用下列結構批注。

註釋 描述
_At_(expr, anno-list) expr 是產生左值的表達式。 中的 anno-list 批注會套用至 由 expr命名的物件。 對於中的每個 anno-list批註, expr 如果註釋在條件前解譯,則會在前置條件中解譯,並在後條件中解譯批註時解譯。
_At_buffer_(expr, iter, elem-count, anno-list) expr 是產生左值的表達式。 中的 anno-list 批注會套用至 由 expr命名的物件。 針對 中的每個 anno-list批註, expr 如果註釋在前置條件中解譯為前置條件,則會在 前置條件中解譯,並在條件後條件中解譯批註。

iter是範圍設定為註釋的變數名稱(包含 )。anno-list iter 具有隱含型態 long。 任何封入範圍中的同名變數都會隱藏在評估中。

elem-count 是評估為整數的表達式。
_Group_(anno-list) 中的 anno-list 批注全都會被視為具有套用至每個批注之群組批注的任何限定符。
_When_(expr, anno-list) expr 是可以轉換成 bool的表達式。 當它是非零時,true在中指定的 anno-list 批注會被視為適用。

根據預設,針對 中的每個 anno-list註釋, expr 如果註釋是前置條件,則會解譯為使用輸入值,如果批註是後置條件,則會使用輸出值。 若要覆寫預設值,您可以在評估後置條件時使用 _Old_ 內部函數,以指出應該使用輸入值。 注意:如果涉及可變值*pLength,可能會啟用_When_不同的註釋,因為前置條件中評估的結果可能與條件后評估的結果expr不同。

另請參閱