В mingw 4.8.1 под Windows XP появились проблемы при передаче 64-битных чисел и строк в функции *printf()
Почитать: http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
Решение: http://sourceforge.net/apps/trac/mingw-w64/wiki/gnu%20printf
Таким образом, по-умолчанию, mingw использует библиотеку MSVCRT.DLL для этих функций. В Windows XP она не соответствует стандарту, и даже не работает включение
#define __STDC_FORMAT_MACROS #include <inttypes.h>
и применение макросов типа PRIX64. В Windows 7, видимо, проблему решили.
Чтобы всегда работали стандартные модификаторы типов (например, llx) в Windows, нужно:
#define __USE_MINGW_ANSI_STDIO 1 #include <stdio.h>