Déjà, il faudrait vérifier si cet avertissement n'est pas un faux positif. Essaie d'afficher un entier qu ne tient pas dans 32 bits avec %llu pour voir.
Et sinon, essaie %I64u, le vieux format Microsoft pour ça.
En l'occurrence, il ne linke pas statiquement avec la bibliothèque qui implémente printf, mais utilise la msvcrt.dll du système, c'est bien pour ça qu'il faut utiliser le spécificateur Microsoft. Les versions plus récentes de Visual C++ utilisent de nouveaux noms pour les bibliothèques standard (msvcr60.dll, msvcr70.dll etc.), mais ces versions ne sont pas universellement préinstallées, donc MinGW/MinGW64/TDM-GCC sont bloqués avec la vieille msvcrt.dll. Il y a la bibliothèque statique libmingwex.a, mais elle ne peut pas tout remplacer. Il me semble qu'il y ait maintenant une implémentation conforme C99 de printf dans la libmingwex, mais il faut probablement l'activer explicitement.
Apparemment, pour avoir le printf C99, il faut soit recompiler mingwrt/mingwex/stdio avec -DINSTALL_AS_DEFAULT=1, soit utiliser des defines lors de la compilation de ton logiciel, par exemple -Dprintf=__mingw_printf (soit carrément coder __mingw_printf en dur dans le code de ton logiciel).
Ha ben nitro a été plus rapide.
Il faut utiliser "z" pour size_t et non "d" ou "u"

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
%zu est aussi du C99, donc ça ne marchera probablement pas non plus avec la msvcrt.dll.