Compartilhar via


Aviso do compilador (nível 4, desativado) C4388

'token': incompatibilidade assinada/não assinada

Usar o operador de token para comparar um número signed e um número maior unsigned exigiu que o compilador convertesse o valor de signed no tipo maior unsigned.

Comentários

Uma maneira de corrigir esse aviso é converter um dos dois tipos ao comparar os tipos signed e os tipos maiores unsigned.

Esse aviso está desativado por padrão. Você pode usar /Wall ou /w44388 para habilitá-lo na linha de comando como um aviso de nível 4. Ou então use #pragma warning(default:4388) no arquivo de origem. Para obter mais informações, confira Avisos do compilador desativados por padrão.

Exemplo

Este exemplo gera C4388 e mostra como corrigi-lo:

// C4388.cpp
// compile with: cl /EHsc /W4 C4388.cpp
#pragma warning(default: 4388)

int main() {
    unsigned long long uc = 0;
    int c = 0;
    unsigned long long c2 = c; // implicit conversion

    if (uc < c)                       // C4388
        uc = 0;

    if (uc < (unsigned long long)(c)) // OK
        uc = 0;

    if (uc < c2)                      // Also OK
        uc = 0;
}

Confira também

Aviso do compilador (nível 3) C4018
Aviso do compilador (nível 4) C4389