"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...
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).
Ha ok, %I64i ou %I64d provoque le même soucie
OK merci. Y'a plus qu'à prier pour que M$ revienne sur sa décision de s'asseoir sur C99...
Qu'entends tu exactement par 'tu n'as pas le droit...'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager