Bagikan melalui


Compiler Warning (level 4, off) C4388

'token' : ketidakcocokan yang ditandatangani/tidak ditandatangani

Menggunakan operator token untuk membandingkan signed dan jumlah yang lebih besar unsigned yang diperlukan pengkompilasi untuk mengonversi signed nilai ke jenis yang lebih besarunsigned.

Keterangan

Salah satu cara untuk memperbaiki peringatan ini adalah jika Anda melemparkan salah satu dari dua jenis ketika Anda membandingkan signed dan jenis yang lebih besar unsigned .

Peringatan ini nonaktif secara default. Anda dapat menggunakan /Wall atau /w44388 untuk mengaktifkannya pada baris perintah sebagai peringatan tingkat 4. Atau, gunakan #pragma warning(default:4388) dalam file sumber Anda. Untuk informasi selengkapnya, lihat Peringatan pengkompilasi yang nonaktif secara default.

Contoh

Sampel ini menghasilkan C4388 dan menunjukkan cara memperbaikinya:

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

Lihat juga

Compiler Warning (Level 3) C4018
Compiler Warning (Level 4) C4389