Ostrzeżenie kompilatora (poziom 3) C4018
"token" : niezgodność podpisanych/niepodpisanych
Użycie operatora tokenu do porównania signed
i unsigned
liczb wymaganych przez kompilator w celu przekonwertowania signed
wartości na unsigned
.
Uwagi
Jednym ze sposobów naprawienia tego ostrzeżenia jest rzutowanie jednego z dwóch typów podczas porównywania signed
i unsigned
typów.
Przykład
Ten przykład generuje kod C4018 i pokazuje, jak rozwiązać ten problem:
// C4018.cpp
// compile with: cl /EHsc /W4 C4018.cpp
int main() {
unsigned int uc = 0;
int c = 0;
unsigned int c2 = c; // implicit conversion
if (uc < c) // C4018
uc = 0;
if (uc < unsigned(c)) // OK
uc = 0;
if (uc < c2) // Also OK
uc = 0;
}
Zobacz też
Ostrzeżenie kompilatora (poziom 4) C4388
Ostrzeżenie kompilatora (poziom 4) C4389
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla