49Fermer51
PpHdLe 09/02/2004 à 17:24

Le compilo est obligé d'aller rechercher s->w, s->h et s->p à chaque fois parce qu'il ne sait pas qu'ils ne sont pas modifiés... Avec un mutable et un 'const LINE *', le compilo pourrait l'optimiser.

1. Tu peux toujours faire un vrai systeme de cache.
2. Tu peux faire des castings de structures.
3. Tu peux reecrire ton code pour que le compilo optimise.
4. De toute facon, ca m'etonnerait fortement que ca soit ca qui soit a optimiser dans ton programme...

Le pointeur est constant dans le sens où toutes les opérations qu'on peut faire dessus (déréférencement, affectation) se comporteront exactement de la même manière. A partir de là, je ne vois pas ce qu'il a de non constant (à part au niveau binaire, mais justement l'utilisateur n'a pas à s'en préoccuper).

Ce qui n'est pas la definition d'un pointeur constant.

Alors si le standard C autorise le code précédent et spécifie qu'il renvoie 0, le hack marche effectivement parfaitement (mais alors 'const' n'est qu'un truc pour empêcher des erreurs); si ce n'est pas le cas, alors la solution que tu proposes a toutes les chances de foirer tôt ou tard en faisant une modification mineure du code...

Non, il ne l'autorise pas.
Mais tu peux le declarer en const volatile si tu veux grin
La c'est correct cool.