We recommend using Visual Studio 2017

Compiler Warning (level 4) C4389

 

The latest version of this topic can be found at Compiler Warning (level 4) C4389.

operator' : signed/unsigned mismatch

An operation involved signed and unsigned variables. This could result in a loss of data.

The following sample generates C4389:

// C4389.cpp  
// compile with: /W4  
#pragma warning(default: 4389)  
  
int main()  
{  
   int a = 9;  
   unsigned int b = 10;  
   if (a == b)   // C4389  
      return 0;  
   else  
      return 0;  
};  

Show: