C28722
警告 C28722:函數宣告中未標註的緩衝區
這個警告表示傳遞為函式參數或函式所傳回的緩衝區,應該以 Microsoft 原始程式碼註釋語言標註 (SAL) 。 靜態分析工具可以使用這類批注來偵測編譯時期的緩衝區溢出。
目前,只會使用這個警告來診斷非常數緩衝區。
例子
下列程式代碼範例會產生這個警告。
int foo( LPTSTR buffer, size_t cch );
下列程式代碼範例會使用 SAL 批注 _Out_writes_ 來指定呼叫的函式寫入緩衝區,而且緩衝區不能是 NULL,以避免這個警告。 批注表示緩衝區是 cch 元素。
int foo( _Out_writes_(cch) LPTSTR buffer, size_t cch );