Поделиться через


Предупреждение компилятора (уровень 4, выключен) C4388

"token" : подписанный или неподписанный несоответствие

Использование оператора токена для сравнения signed и большего unsigned числа требуется компилятору для преобразования signed значения в более крупный unsigned тип.

Замечания

Одним из способов устранения этого предупреждения является приведение одного из двух типов при сравнении signed и более unsigned крупных типах.

Это предупреждение отключено по умолчанию. Вы можете использовать /Wall или /w44388 включить его в командной строке как предупреждение уровня 4. Или используйте #pragma warning(default:4388) в исходном файле. Дополнительные сведения см. в разделе "Предупреждения компилятора", отключенные по умолчанию.

Пример

В этом примере создается C4388 и показано, как исправить его:

// 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;
}

См. также

Предупреждение компилятора (уровень 3) C4018
Предупреждение компилятора (уровень 4) C4389