Comment puis-je imprimer long long int
Et aussi unsigned long long int
Dans C99 en utilisant GCC?
J'ai cherché dans les autres posts qui suggèrent d'utiliser %lld
Mais cela donne ces avertissements:
avertissement n ° 1: caractère de type de conversion inconnu 'l' au format [-Wformat] |
avertissement n ° 2: trop d'arguments pour le format [-Wformat-extra-args] |
Pour la tentative suivante:
#include <stdio.h>
int main()
{
long long int x = 0;
unsigned long long int y = 0;
printf("%lld\n", x);
printf("%llu\n", y);
}
Si vous utilisez Windows et que vous utilisez mingw, gcc utilise le runtime win32, où printf a besoin de %I64d
pour un entier de 64 bits. (et %I64u
pour un entier non modifié de 64 bits)
Pour la plupart des autres plateformes, vous utiliseriez %lld
pour avoir imprimé longtemps. (et %llu
_ s'il n'est pas signé). Ceci est normalisé dans C99.
gcc ne vient pas avec une exécution complète en C, il diffère de la plate-forme sur laquelle il tourne - le cas général est que vous devez consulter la documentation de votre plate-forme particulière - indépendamment de gcc.
Essayez de mettre à jour votre compilateur, j'utilise GCC 4.7 sur Windows 7 Starter x86 avec MinGW et il compile correctement avec les mêmes options à la fois en C99 et en C11.