共用方式為


編譯器警告 (層級 3) C4018

' token ' : 帶正負號/不帶正負號不符

使用標記 運算子來比較 signed ,編譯 unsigned 程式需要數位才能將 signedunsigned 轉換成 。

備註

修正此警告的其中一個方法是,當您比較 signedunsigned 類型時,將其中一個類型轉換成其中一種。

範例

此範例會產生 C4018,並示範如何修正:

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

另請參閱

編譯器警告 (層級 4) C4388
編譯器警告 (層級 4) C4389