Ostrzeżenie kompilatora (poziom 4, wyłączony) C4388
"token" : niezgodność podpisanych/niepodpisanych
Użycie operatora tokenu do porównania signed
i większej unsigned
liczby wymaganej przez kompilator w celu przekonwertowania signed
wartości na większy unsigned
typ.
Uwagi
Jednym ze sposobów naprawienia tego ostrzeżenia jest rzutowanie jednego z dwóch typów podczas porównywania signed
i większych unsigned
typów.
To ostrzeżenie jest domyślnie wyłączone. Można użyć /Wall lub /w44388
włączyć go w wierszu polecenia jako ostrzeżenie poziomu 4. Możesz też użyć go #pragma warning(default:4388)
w pliku źródłowym. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.
Przykład
Ten przykład generuje kod C4388 i pokazuje, jak rozwiązać ten problem:
// 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;
}
Zobacz też
Ostrzeżenie kompilatora (poziom 3) C4018
Ostrzeżenie kompilatora (poziom 4) C4389