Printf long long int in C avec GCC?

Comment puis-je printf long long int et unsigned long long int en C99 en utilisant GCC?

j'ai cherché les autres messages qui suggèrent d'utiliser %lld mais il donne ces avertissements:

avertissement n ° 1: inconnu type de conversion de caractère 'l' dans le format [-Wformat]|

avertissement#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("%lldn", x);
   printf("%llun", y);
}
40
demandé sur user963241 2012-11-27 22:31:40

2 réponses

si vous êtes sous windows et que vous utilisez mingw, gcc utilise l'exécution win32, où printf a besoin de %I64d pour un entier 64 bits. (et %I64u pour un unsinged entier de 64 bits)

pour la plupart des autres plateformes vous utiliseriez %lld pour imprimer longtemps. (et %llu si c'est non signé). C'est la norme EN C99.

gcc ne vient pas avec un temps D'exécution C complet, il se reporte à la plate - forme sur laquelle il tourne-donc le cas général est que vous avez besoin de consulter la documentation pour votre plate - forme particulière-indépendante de gcc.

54
répondu nos 2016-09-09 09:21:35

essayez de mettre à jour votre compilateur, J'utilise GCC 4.7 sur Windows 7 Starter x86 avec MinGW et il se compile très bien avec les mêmes options en C99 et C11.

3
répondu effeffe 2012-11-27 21:19:33