1

est-ce qu'il est possible de forcer le padding d'une structure a la fin de celle-ci (ou mieux, a un emplacement voulu dans la struct) ? si c'est pas possible, comment faire pour copier une suite d'octets dans une une structure sans constater de perte a cause du padding?

2

J'ai pas la réponse, mais simple curiosité : le padding il est toujours automatique normalement, non ? (avec un attribute pour le virer)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

C'est attribute packed que tu cherches ?
So much code to write, so little time.

4

je vais tester ca
merci smile

5

il y a une autre solution que de mettre des __attribute__ ((packed)) pour chaque champ de la structure?

6

Nerick> heu, la solution bourrin...
tu met des unsigned char ou autres là où tu veux padder grin
(bon, ok, c bourrin... mais bon)
(d'autant plus que la taille d'un UChar ou autre n'est pas nécessairement la même d'un compilo à un autre)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

(d'autant plus que la taille d'un UChar ou autre n'est pas nécessairement la même d'un compilo à un autre)

Euh, si : 1 cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

8

./7> tu es sûr ? c fixé par la norme ?
je croyais que sizeof(char) <= sizeof(short) <= sizeof(int) <= ...
mais que la taille de chaque type n'était pas fixé, volontairement sad

(m'enfin, tu dois t'y connaitre mieux que moi, sur ce sujet)
(arf, fo que j'arréte de poster, ça fait une paire de fois que soit je dis une connerie, soit je suis HS sad )
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

9

sizeof(char) = 1
Ca te permet de faire, par exemple :
char copie[sizeof(type)];
memcpy(copie,variable,sizeof(type));

Tu serais un peu plus emmerdé si on n'avait pas sizeof(char) = 1.

(PS : je ne le savais pas non plus jusqu'à il y a pas si lgtps que ça happy)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

10

./9> arf, ok.
bah, comme ça, maintenant, je le sais smile
(bon, vais mater un sg1, ça m'évitera pdt 3/4 d'heure de sortir des conneries...)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

11

le probleme c'est que je ne peux pas prevoir a l'avance combien d'octets il va falloir pour compenser le padding (je suis pas sur TI)
mais c'est bon je me suis debrouille avec __attribute__ ((packed)) smile

12

Oue mais sizeof(char) == 1 != 1 octet :0

13

Oui mais si sizeof(char) = 2 octets, tous les types sont multiples de 2 octets...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

14

Pourquoi mais ?

15

Et alors pourquoi mais ?

(je parle évidemment du tien =) )

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

Ben... Parce que ./11

17

Il disait qu'il ne _pouvait pas_ prévoir le nombre d'octets. Ce qui sous-entendait :
1) qu'il ne connaissait pas le nombre d'octets et/ou l'alignement des types de bases, ni même nécessairement la taille en octets d'un "char"
2) et qu'il utilisait de toute façon une autre méthode à cause de ça

Donc même si ça pouvait qd même être utile de faire la remarque, il valait mieux l'introduire par "attention" que par "mais" wink
(il fallait pas me chercher sur le terrain de la tétracapillotomie tongue)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

18

C'est l'alignement des types que je ne connais pas.

19

De toute facon, la seule methode stable avec gcc c'est les attributs. Tu peux aussi specifier que la structure soit agrandie a un multiple de 128 (ou 256).
Mais bin. T'es pas discret

20

Evidemment smile Le premier, j'avais fait exprès de le faire très voyant... Et le deuxième, bah tout le monde se doutait qu'il y aurait encore qqch donc pas la peine de cacher :D

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

21

on dit capillotraction non ?
avatar
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.

22

ça ça veut dire "tiré par les cheveux"; je voulais dire "qui relève du coupage de cheveux en quatre", c'est qd même pas vraiment pareil...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)