Peut-on conscidèrer ce bout de code correct ? [C] - C - Programmation
Marsh Posté le 25-07-2003 à 18:28:59
Code :
|
moi je verrais plutot ça, qui doi fonctionner sur une machine ou un char est codé sur CHAR_BIT == 8 et où un sizeof(unsigned short) >= 2
Marsh Posté le 25-07-2003 à 18:30:03
Bon alors c pas des bits que tu veux récupérer mais des byte
Et tes fonctions sont à chier:
Code :
|
Pas la peine de se compliquer la vie
Marsh Posté le 25-07-2003 à 18:34:46
++Taz a écrit :
moi je verrais plutot ça, qui doi fonctionner sur une machine ou un char est codé sur CHAR_BIT == 8 et où un sizeof(unsigned short) >= 2 |
Juste par curiosité, y a beaucoup de machine qui code le char sur plus d'un octet?
Marsh Posté le 25-07-2003 à 18:39:52
pas vraiment dans le monde du PC, mais y a beaucoup de processeur RISC industriel ou les char sont sur 16bits voir 32bits. enfin, c'est plus courant qu'on ne le pense. il y avait aussi des architecture avec des char sur 8/10bits. Autant prendre une bonne habitude, deplus on ne sait jamais sur quelle machine tournera son code, et puis la macro CHAR_BIT est bien plus élégante des nombres magiques comme 8, etc...
Marsh Posté le 25-07-2003 à 18:42:11
++Taz a écrit : pas vraiment dans le monde du PC, mais y a beaucoup de processeur RISC industriel ou les char sont sur 16bits voir 32bits. enfin, c'est plus courant qu'on ne le pense. il y avait aussi des architecture avec des char sur 8/10bits. Autant prendre une bonne habitude, deplus on ne sait jamais sur quelle machine tournera son code, et puis la macro CHAR_BIT est bien plus élégante des nombres magiques comme 8, etc... |
Tout à fait d'accord avec toi. Mais, tout en sachant que ça pouvait exister je conaissais pas d machines ou le char faisait pas 8 bits.
Marsh Posté le 25-07-2003 à 18:47:07
ah oui, tiens, j'me susi confondu sur le byte, surement le manque de sommeil
merci, m'enfin ça me parait assez bizarre de faire des changements de cast comme ça
Marsh Posté le 25-07-2003 à 18:48:39
cela dit un byte doit etre traduit par multiplet ou plus-petite-unité-adressable, c'est ce sens qu'utilise le C.
Marsh Posté le 25-07-2003 à 18:00:47
sous linux, glibc-2.2.x, gcc, bla bla bla ... :
mon but est de séparer le 1er et le 2ème bit d'un short de manière correct, cad ke ce ke je doit avoir est un octet contenant le 1er bit et un autre octet contenant le 2ème bit, pour pouvoir être envoyer d'en une fonction ki a un prototype de ce genre :
j'ai bien essayé ça :
mais ça couille sur le 2ème et me donne data2 = 0
alors, mes deux fonctions sont elle "correct" au sens manière d'écrire, transgression de règles, etc ... ?
(le compilo ne fait pas de warning et le resultat est bon)
Message édité par Deadog le 25-07-2003 à 18:05:17