編譯程式警告 (層級 4,關閉) C4388
'token' : 帶正負號/不帶正負號不符
使用 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;
}