Condividi tramite


C28139

avviso C28139: L'argomento deve corrispondere esattamente al tipo

Informazioni aggiuntive

Alcune funzioni consentono un'aritmetica limitata sul tipo di argomento, altre no. Ciò indica in genere che un'enumerazione formale non è stata passata a un membro dell'enumerazione, ma può essere usata anche per altri tipi.

Un valore enumerato in una chiamata di funzione non corrisponde al tipo specificato per il parametro nella dichiarazione della funzione. Questo errore può verificarsi quando i parametri sono codificati in modo errato, mancante o non in ordine. Poiché C consente di usare valori enumerati in modo intercambiabile e di usarli in modo intercambiabile con costanti integer, non è insolito passare il valore enumerato errato a una funzione senza riconoscere l'errore.

Se lo strumento analisi codice segnala questo errore, consultare la documentazione della funzione in WDK. Alcune funzioni sono codificate per consentire solo valori enumerati. Altri consentono all'operatore ?: di selezionare tra i valori di tale tipo o di consentire l'aritmetica sui membri del tipo enumerato, ad esempio quando i flag di bit vengono codificati come valore enumerato. In alcuni casi, i valori enumerati e le costanti potrebbero essere combinati.

Esempio

Nell'esempio di codice seguente viene generato questo avviso.

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

Nell'esempio di codice seguente viene evitato questo avviso.

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