66Fermer68
ZerosquareLe 15/04/2009 à 18:59
Les pointeurs sont considérés comme "opaques" en C, tu n'es pas censé faire de manipulation sur leur valeur numérique. (Bon en l'occurence tu t'en fous puisque l'architecture hardware est fixe et connue pour toi, mais à la base c'était censé être un langage portable).

D'ailleurs, renseigne-toi sur ce qui dépend de l'implémentation (machine et/ou compilateur) en C, tu vas être surpris. En vrac : la taille et la représentation des entiers (pas forcément du binaire et du complément à 2), l'endianness, l'ordre et l'espacement des éléments dans une structure, l'effet d'un décalage de bits sur un nombre signé, l'ordre d'évaluation des expressions où il y a des pré/post incrémentations....

Et si tu commences à attaquer le hardware, lit cet article, ça t'évitera de sacrés maux de tête à chercher pourquoi ton prog déconne aléatoirement.
Brunni (./63) :
Faut bien se rendre compte qu'en temps normal tu n'as aucune raison de faire ça, donc c'est normal que le C te complique la vie
Ouais, enfin, tu as déjà essayé de faire un programme vraiment portable en C ? C'est tout aussi merdique grin
(je parle d'un truc non trivial qui devrait marcher dans n'importe quelle implémentation valide de la norme, y compris les cas tordus autorisés...)