Il est aussi possible de faire une macro (comme les macros qui sont dans ExtGraph).
Mais la macro a l'inconvénient d'être une macro (toujours inlinée).
Elle a par contre l'avantage d'être optimisée à fond si les paramètres sont constants, beaucoup plus que toute routine possible...
XDanger: oué, mais bon, une MACRO c vite chiant quand mm, faut mieux utiliser une fonction je trouve ... surtout qu'avec des fonctions optimisées, on s'approche de la rapidité de la macro
> surtout qu'avec des fonctions optimisées, on s'approche de la rapidité de la macro
En effet.
Mais si on utilise une fonction non inlinée, il y a l'overhead du jsr ou bsr et du rts. C'est à dire que c'est à la fois plus gros et plus lent, si la fonction n'est pas inlinée.
Si on veut la vitesse maximum et qu'on se fiche de la taille, on inline (dans la limite d'un certain nombre de SetPixel, quand même)...
Mais ça fait peu de différence avec une macro qui peut, elle, être optimisée si les paramètres sont constants...
On peut utiliser __builtin_constant_p, c'est fait pour ça...
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
> On peut utiliser __builtin_constant_p, c'est fait pour ça...
En effet. Mais à ce moment-là, quelle est la différence avec une macro ?
Et est-ce que c'est supporté par GTC ? Parce que c'est utile...
Mais c'est vrai que des choses utiles ne sont pas / ne sont pas encore supportées par GTC...
[Attention, mon but n'est pas de lancer un débat GTC/TIGCC ici].
> En effet. Mais à ce moment-là, quelle est la différence avec une macro ?
Je veux dire pour définir une macro de pixel, on peut tester si les coord sont constantes (ou l'une des deux), et alors inliner l'appel avec une macro, et si elles ne sont pas constantes, on peut utiliser la fonction "classique"
> Et est-ce que c'est supporté par GTC ? Parce que c'est utile...
Oui oui ("Other built-in functions")
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)