sans espace ça marche pour 0xF mais pas pour 0xE, sans doute a cause du parsing éventuel de 1.4E-5 pour les flottants.
Oui ça doit être ça. Ce qui veut dire que soit 0x est un nombre valide pour GCC (...) soit il considère à la foix 0xE et (int = 0)*10-2.
Dans les deux cas ça me parait un bug mais faudrait voir ce que dit la spec du langage. (Je pourrais aussi tester avec Visual C++ si j'avais pas la flemme mais non)
en fait non, a priori c'est pas un bug mais ça a à voir avec les 'preprocessing tokens' de gcc. E serait considéré comme un truc spécial.
mais visual studio accepte les 3 syntaxes.
Ce n'est pas un bogue, c'est conforme au standard C. Le E- est parsé comme un exponentiel, donc fait partie du "preprocessing number". Ensuite, ce nombre est validé et GCC voit que 0x ne colle pas avec cette notation exponentielle, d'où l'erreur.
Les versions actuelles de GCC sont très pointilleuses sur ces histoires de tokens du préprocesseur et n'acceptent pas ce qu'elles ne sont pas obligées d'accepter. Ils disent que c'est pour rendre le préprocesseur plus efficace.
Bah, c'est comme d'ab, une erreur logique avec un message d'erreur tout ce qu'il y a de plus clair, comme GCC sais si bien le faire

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.
Les entiers écrits en hexa (0xFF) sont traduits en entiers décimaux (255) par le preprocesseur ? Le compilateur ne voit jamais de code hexa ?
Bon Ben j'ai appris un truc sympa aujourd'hui. Mais pourquoi c'est le PP qui convertit ?

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
t'as pas compris.
le preproc ne transforme pas les hexa en decimaux, mais a une manière particulière de les lire.
Link Le 02/11/2009 à 21:37 Décimal, hexadécimal, le compilo s'en fout. Pour lui, c'est un nombre, c'est tout. Le terme de "base" n'existe que quand on convertit ce nombre en chaîne de caractères.

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Non, mais le problème, c'est qu'il a à l'esprit le modèle obsolète du préprocesseur qui prend un fichier texte et en ressort un autre, qui est ensuite lexé et parsé par le compilateur à vrai dire. Mais dans les compilateurs C/C++ modernes, le lexeur est dans le préprocesseur, qui fournit directement des tokens au compilateur, le compilateur ne va pas s'amuser à relexer le tout.
Ou le mec qui laisse depuis 3 ans un compilateur en version bêta sans aucune mise à jour.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.