Share via


編譯程式警告 (層級 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;
}

另請參閱

編譯程式警告 (層級 3) C4018
編譯程式警告 (層級 4) C4389