Diagnostic 181: argument is incompatible with corresponding format string conversion


This warning is triggered by a printf or scanf format specifier that is not appropriate for the type of the variable being printed.


#include <stdio.h>

int main() {
   unsigned int ui = 0;
   printf("%f\n",ui);  // %f is for a double type, not an unsigned integer type
   printf("%u\n",ui); // OK
   return 0;
> icl -c /W4 diag181.cpp
Intel® C++ Compiler Professional for applications running on IA-32, Version 11.1    Build 20090511 Package ID: w_cproc_p_11.1.035
Copyright (C) 1985-2009 Intel Corporation.  All rights reserved.

diag181.cpp(5): warning #181: argument is incompatible with corresponding format string conversion

Resolution : 

Use the proper type specifier.
For more complete information about compiler optimizations, see our Optimization Notice.