Ahhh... je me permets de faire remarquer que si, il faut parfois aussi inverser les bits, car suivant les processeurs, les conventions pour numéroter chaque bit du bus peuvent différer ( signaux 31-0 -> MSB-LSB ou LSB-MSB). Mais il est vrai que ce problème ne concerne que les designers. Le codeur peut cependant avoir d'autres problèmes tout aussi tordus, comme l'inversion d'adresse, dans le cas où 2 processeurs avec un endianness différent accèdent à la même mémoire partagé (l'octet à l'adresse 1 de l'un sera celui à l'adresse 3 de l'autre!).
Et rien que dans un cas normal de transfert de données sur le réseau, le problème peut se poser : si une appli est écrite pour tourner avec un seul type d'endianess (habituel sachant que le LE concerne la majorité des architecture), et qu'on décide de la porter pour un nouveau type d'endianess, ça risque d'être coton : il n'est pas possible de rajouter une couche intermédiaire qui va swapper les structures, car la couche n'est pas au courant du contenu (u32;u16[2]; u8[4] != u16[4];u32[2] ). Il va donc falloir se palucher tout le source pour rajouter des macros partout.
L'endianness c'est un sacré problème bien pourri. Et comme il faut des coupables, je désignerai moi aussi les petits indiens, car d'une part c'est plus facile de s'attaquer aux petits qu'aux grands, et d'autre part, c'est vraiment pénible de lire des int 32 en LE dans un dump de la mémoire.
[^] # Re: iTrt eudc moemtniaer
Posté par calandoa . En réponse au journal SOLR-2128: full param substitution for function queries. Évalué à 5.
Et rien que dans un cas normal de transfert de données sur le réseau, le problème peut se poser : si une appli est écrite pour tourner avec un seul type d'endianess (habituel sachant que le LE concerne la majorité des architecture), et qu'on décide de la porter pour un nouveau type d'endianess, ça risque d'être coton : il n'est pas possible de rajouter une couche intermédiaire qui va swapper les structures, car la couche n'est pas au courant du contenu (u32;u16[2]; u8[4] != u16[4];u32[2] ). Il va donc falloir se palucher tout le source pour rajouter des macros partout.
L'endianness c'est un sacré problème bien pourri. Et comme il faut des coupables, je désignerai moi aussi les petits indiens, car d'une part c'est plus facile de s'attaquer aux petits qu'aux grands, et d'autre part, c'est vraiment pénible de lire des int 32 en LE dans un dump de la mémoire.