30

31

C'est rien du tout, ça ne contient pas de données et on ne peut pas le manipuler, le copier ou le comparer ; les types de GNU font semblant que sizeof(void) soit 1 pour pouvoir faire de l'arithmétique sur des void * plutôt que sur des char * : le gros avantage, c'est que contrairement au char *, un void * se convertit implicitement en n'importe quoi, donc quand tu ne sais pas encore vers quoi pointent des données il vaut mieux utiliser un void *. Il y en a qui trouvent que c'est un hack crade, mais je trouve que c'est pas une mauvaise idée : la norme C prévoit que les char * peuvent jouer le rôle de "pointeur vers n'importe quoi", mais d'un autre côté si on ne compte pas s'en servir comme pointeur vers un char et qu'on va par exemple toujours lire des unsigned int, l'information de type ne correspond pas à l'usage qu'on en fait. Utiliser des void * permet de faire la distinction entre les vrais char * et les pointeurs vers n'importe quoi smile

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

32

Mais perso je vois pas où et comment se justifie l'utilisation de sizeof(void) ?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

33

Parce que si p est de type T* et que n est un entier, p+n pointe vers l'adresse de p décalée de n*sizeof(T) octets (autrement dit, (char *)(p+n) = (char *)p + n*sizeof(T)). Ce que permet l'extension GNU, c'est juste d'écrire aussi (void *)(p+n) = (void *)p + n*sizeof(T) ^^

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

34

OK je comprend mieux.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

35

36

t'en as pas marre à force ?