Printf long long int en C avec GCC?

Comment puis-je printf long long int et aussi unsigned long long int en C99 à l'aide de GCC?

J'ai cherché dans les autres postes, ce qui suggère l'utilisation de %lld mais il donne à ces mises en garde:

avertissement n ° 1: inconnu type de conversion de caractère 'l' dans le 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);
}
  • Avez-vous utilisé le -std=c99 drapeau lors de la compilation?
  • Oui, je l'ai fait.
  • Je n'ai pas de mises en garde: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Basé sur Apple Inc. construire 5658) (LLVM construire 2335.15.00)
  • Quelle version de compilateur?
  • Je ne suis pas sûr de la façon de regarder pour la version. Je suis à court de gcc sous windows x86.
  • gcc -v, de toute façon.
  • Ah, c'est la version de gcc 4.6.1. Merci @effeffe.
  • La version de Windows que vous utilisez?
  • De même, la lecture de la accepté de répondre et depuis GCC changements de rapport n'évoque pas cette question, qui pourrait être le problème. J'aimerais quand même essayer de mettre à jour le compilateur.
  • Windows xp service pack 3.
  • Je viens de découvrir que je n'avais pas -std=c99 drapeau. J'ai pensé qu'il était défini globalement pour tous les projets. Le programme que j'ai dans l'exemple compile sans aucun avertissement. Je m'excuse pour toute difficulté.
  • double possible de MinGW GCC: "Unknown type de conversion de caractère 'h'" (snprintf)

InformationsquelleAutor user963241 | 2012-11-27