"warning: format '%I64i' expects type 'int', but argument 7 has type 'long long int"
"warning: format '%I64i' expects type 'int', but argument 7 has type 'long long int"
Une question pourquoi le code ci-dessous ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #ifdef __WIN32__ #define LLONG %I64i #else #define LLONG %lld #endif long long int LLi=2000000000; LLi*=100; printf("LLONG\n",LLi);
Le remplacement des macros n'est pas fait dans les chaines.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #ifdef __WIN32__ #define LLONG "%I64i" #else #define LLONG "%lld" #endif long long int LLi=2000000000; LLi*=100; printf(LLONG "\n",LLi);
A ma connaissance, la bonne macro est WIN32 ou _WIN32
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#if defined WIN32 || defined _WIN32 ...
Oui tu as raison, j'ai redéfinie __WIN32__ chez moi par commodité de maniére à pouvoir dans mes code l'iniber ou non à convenance sans modifier le systéme
Le problème avec ces macros, c'est quand tu te retrouves avec des TCHAR ou simplement de l'unicode.
Car aucun compilo à ma connaissance n'accepte de reconnaître ceci comme une grande chaîne unicode:
...Il faut rajouter le L à chaque fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part L"blabla" "%lli" "blabla"
PS: Pourquoi utiliser %lld mais %I64i ? Ça marche aussi bien avec un d, vous savez...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
ok pour l'unicode, sinon je pige pas ton PS
Mon PS dit: Si tu utilises %lld, alors utilise %I64d aussi (plutôt que %I64i).
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ha ok, %I64i ou %I64d provoque le même soucie
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
OK merci. Y'a plus qu'à prier pour que M$ revienne sur sa décision de s'asseoir sur C99...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Qu'entends tu exactement par 'tu n'as pas le droit...'
Partager