註釋函式行為
除了附註 函式參數和傳回值之外,您還可以標註整體函式的屬性。
函式附註
下列附註適用於整個函式並描述其不同的運作方式或所預期為 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_。 如需詳細資訊,請參閱指定套用註釋的時機和位置。 |