共用方式為


註釋函式行為

除了附註 函式參數和傳回值之外,您還可以標註整體函式的屬性。

函式附註

下列附註適用於整個函式並描述其不同的運作方式或所預期為 true。

註釋

描述

_Called_from_function_class_(name)

不適合單獨代表;相反地,它是所使用的述詞與 _When_ 標記法。 如需詳細資訊,請參閱指定套用註釋的時機和位置

name 參數是也出現在某些函式的宣告的 _Function_class_ 標記法的任意字串。 _Called_from_function_class_ 會傳回零,如果目前的分析函式加註使用 name有相同的值則為 _Function_class_ ;否則,會傳回零。

_Check_return_

附註的傳回值,並指出呼叫端應檢查它。 函式,則在 null 內容,呼叫該檢查程式報告錯誤。

_Function_class_(name)

name 參數是使用者所設定的選擇性字串。 它存在於集合中其他命名空間不同的命名空間。 函式、函式指標,或最 usefully-a 函式指標型別可以指定為屬於一或多個函式類別。

_Raises_SEH_exception_

標註永遠引發結構化的例外處理常式 (SEH) 例外狀況,依據 _When_ 和 _On_failure_ 條件的函式。 如需詳細資訊,請參閱指定套用註釋的時機和位置

_Maybe_raises_SEH_exception_

註解可以選擇性引發 SEH 例外狀況,依據 _When_ 和 _On_failure_ 條件的函式。

_Must_inspect_result_

附註任何輸出值,包括傳回值、參數和全域變數。 如果在標註物件的值之後未核取,分析器報告錯誤。「 檢查包括是否用於條件運算式,指定給輸出參數或全域,或傳遞做為參數。 對於傳回值, _Must_inspect_result_表示 _Check_return_。

_Use_decl_annotations_

在函式定義 (也稱為函式主體) 使用在附註的清單表單的標題。當使用 _Use_decl_annotations_ 時,會出現在相同函式的範圍標題使用的附註,如同它們也存在具有 _Use_decl_annotations_ 標記法的定義。

成功或失敗附註

函式會失敗,,和,當它時,它的結果可能不完整或與結果不同,因為函式成功時。 下列清單中的附註提供方式表示失敗行為。 若要使用這些附註,您必須能夠判斷成功;因此,需要 _Success_ 標記法。 請注意 NTSTATUS 和 HRESULT 已指定 _Success_ 附註會建置到它們;不過,因此,如果您在 NTSTATUS 或 HRESULT中指定 _Success_ 標記法,它就會覆寫內建註釋。

註釋

描述

_Always_(anno_list)

相當於 anno_list _On_failure_(anno_list);也就是在 anno_list 的附註套用函式是否成功。

_On_failure_(anno_list)

藉由在 typedef 的 _Return_type_success_ 將使用,只有在 _Success_ 也用來明確加註函式任一或隱含。 當 _On_failure_ 標記法是存在於函式參數或傳回值時,在 (anno) 的每個註解的 anno_list 行為,就如同該程式碼做為 _When_(!expr, anno), expr 為參數所需 _Success_ 標記法。 這表示 _Success_ 的隱含的應用程式對所有後置條件中不適用於 _On_failure_。

_Return_type_success_(expr)

套用到 typedef。 傳回指示該型別,並沒有明確 _Success_ 的所有函式加註,視為具有 _Success_(expr)。 _Return_type_success_ 在函式或函式指標 typedef 無法使用。

_Success_(expr)

expr 是產生值的運算式。 當 _Success_ 標記法是存在於函式宣告或定義時,每個附註中 (anno) 函式和在後置條件的行為,就如同該程式碼做為 _When_(expr, anno)。 _Success_ 標記法在一個函式只能使用,而不是它的參數或傳回型別。 可以有一於函式的 _Success_ 標記法,因此,它不可以在任何 _When_、 _At_或 _Group_。 如需詳細資訊,請參閱指定套用註釋的時機和位置

請參閱

參考

註釋函式參數和傳回值

註釋結構和類別

註釋鎖定行為

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

內建函式

最佳作法和範例 (SAL)

概念

了解 SAL

其他資源

使用 SAL 註釋減少 C/C++ 程式碼的缺失