probleme de structure - C - Programmation
Marsh Posté le 23-08-2007 à 12:01:04
carot0 a écrit :
|
Pas du C. Le forum C++, c'est à coté.
Marsh Posté le 23-08-2007 à 12:05:11
Emmanuel Delahaye a écrit : |
le probleme n'est pas dans l'affichage mais dans la strucutre (qui est bien codé en C) on a qu'a dire que c'est un printf ca ne change rien au probleme!
Je me demande aussi si mon probleme n'est pas lié a un alignement mémoire...
Marsh Posté le 23-08-2007 à 12:25:07
rien compris, ni rien lu, juste que pour struct avec un aussi joli de nom que CacheInfo, tu ferais bien de la tasser un peu en ordonnant les membres par taille décroissante.
Marsh Posté le 23-08-2007 à 12:33:45
Taz a écrit : rien compris, ni rien lu, juste que pour struct avec un aussi joli de nom que CacheInfo, tu ferais bien de la tasser un peu en ordonnant les membres par taille décroissante. |
je l'aurai fait si c'etait possible mais cette structure est codé selon des données qui sont déja ordonné dans cet ordre (donc si je change l'ordre des champs ca deviendra incohérent)
quelqu'un sais comment désactiver l'alignement mémoire des strucutre avec gcc ?
edit : il te plait pas le nom de ma structure ?
Marsh Posté le 23-08-2007 à 12:42:30
carot0 a écrit : je l'aurai fait si c'etait possible mais cette structure est codé selon des données qui sont déja ordonné dans cet ordre |
Faute de conception (code non portable). Il faut utiliser un tableau de unsigned char et manipuler les octets à la main. On écrit les 2 fonction de conversion de/vers des structures internes et ça marche.
Marsh Posté le 23-08-2007 à 12:47:17
Emmanuel Delahaye a écrit : |
ouais... ce qui y a c'est que des structure comme elles j'en est une 15aines donc la j'ai de quoi me prendre la tête pour longtemps ...
pour le __attribute__ je sais pas ce que c'est, je vais donc voir ca sur google.
Marsh Posté le 23-08-2007 à 13:46:16
Taz a écrit : __attribute__ |
thx ca a marché !!
avec un __attribute__ ((packed))
Marsh Posté le 23-08-2007 à 14:15:22
carot0 a écrit : |
Jusqu'au jour où tu passes de x86 à PowerPC...
Marsh Posté le 23-08-2007 à 14:51:37
Taz a écrit : ou juste en 64bits |
comment faire pour que ca marche en 64bit aussi ? ( mon programme n'est prévue que pour PC )
Marsh Posté le 23-08-2007 à 15:06:42
ReplyMarsh Posté le 23-08-2007 à 15:08:28
Un Programmeur a écrit : Emmanuel a deja donne la reponse. Il faut manipuler les octets un a un. |
ha .... ca va être trop la misere alors ... thx
edit : en fait je comprends pourquoi le "__attribute__ ((packed));" marcherai pas sur les autre archi ?
sachant que je fournirai pas le binaire mais le code sources + un make ou le binaire pour des archi bien spécifique.
Marsh Posté le 23-08-2007 à 11:09:55
bonjour tout le monde, j'ai un petit soucis avec une structure.
Voici ma strucutre :
avec
et lors de l'utilisation de la strucuture
le cout me sort une valeur qui ne me convient pas.
J'ai du coup essayé autre chose :
et la le resultat est ce qu'il faut !
Est ce que vous voyez ou je me suis planté car je prefere largement utiliser la 1ere structure (le 2nd cas n'est qu'une illustration j'utiliserai pas de structure pour faire ca en temps normal)
OS linux Debian
Compilo gcc 4.1.3 20070629 (prerelease) (Debian 4.1.2-13)
Message édité par carot0 le 23-08-2007 à 11:17:01
---------------
In a world without walls and fences, who needs Windows and Gates