共用方式為


C28139

警告 C28139:自變數應該完全符合類型

其他資訊

有些函式允許自變數類型的算術有限,其他函式則不允許。 這通常表示列舉正式未傳遞列舉的成員,但也可能用於其他類型。

函數調用中的列舉值不符合函式宣告中為 參數指定的類型。 當參數編碼錯誤、遺失或順序錯亂時,可能會發生此錯誤。 因為 C 允許以交替方式使用列舉值,而且要與整數常數交替使用,所以將錯誤的列舉值傳遞至函式並不罕見,而不會辨識錯誤。

如果程式代碼分析工具回報此錯誤,請參閱 WDK 中函式的檔。 某些函式會編碼為只允許列舉值。 其他允許 ?: 運算符可以選取該類型的值,或允許列舉型別成員的算術,例如當位旗標編碼為列舉值時。 在某些情況下,可能會合並列舉值和常數。

範例

下列程式代碼範例會引發這個警告。

....KeWaitForSingleObject(&MyMutex, UserRequest, UserRequest, false, NULL);

下列程式代碼範例會避免這個警告。

....KeWaitForSingleObject(&MyMutex, UserRequest, UserMode, false, NULL);