Aracılığıyla paylaş


Derleyici Uyarısı (düzey 4) C4800

Visual Studio 2019 ve üzeri:

'tür'den bool'a örtük dönüştürme. Olası bilgi kaybı

C4800, Visual Studio 2015 ve önceki sürümlerde bir düzey 3 uyarısıdır:

'type' : değeri bool 'true' veya 'false' olarak zorlama (performans uyarısı)

Bu uyarı, bir değer örtük olarak türüne booldönüştürüldüğünde oluşturulur. Bu ileti genellikle değişkenlerin yalnızca ve falsedeğerlerini içerdiği değişkenlere bool int atanmasına int neden olur ve türü boololarak yeniden işlenebilirtrue. türünü boolkullanmak için ifadeyi yeniden yazamıyorsanız ifadeye "!=0" ekleyebilirsiniz ve bu da ifade türünü boolverir. İfadenin yazılması bool uyarıyı devre dışı bırakmaz ve bu da tasarım gereğidir.

Bu uyarı Visual Studio 2017'de gösterilmez.

Visual Studio 2019'dan başlayarak bu uyarı varsayılan olarak kapalıdır. C4800'ü düzey n uyarı olarak etkinleştirmek için /wn 4800 veya varsayılan olarak kapalı olan tüm uyarıları etkinleştirmek için /Wall kullanın. Daha fazla bilgi için bkz . Varsayılan Olarak Kapalı Olan Derleyici Uyarıları.

Örnek

Aşağıdaki örnek C4800 oluşturur ve nasıl düzeltileceğini gösterir:

// C4800.cpp
// compile with: /W4 /w44800
int main() {
   int i = 0;

   // To fix, instead try:
   // bool i = 0;

   bool j = i;   // C4800
   j++;
}