website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » Langage C : les unions et l'optimisation


Posté : 19-01-2017 19:13 icone du post

Soir'
>Et lire la composante rouge avec : pixel.r
Oui tout à fait meme si au final ça changera rien sur l'ASM généré

>une division par 2 alors qu'une multiplication par 0.5 c'est plus rapide
a) le >>1 est plus rapide qu'un (vrai) /2

b) ici c'est des entiers (UBYTE = unsigned byte = entier 8 bits signé) donc pas possible de faire * 0.5 avec un nombre sans virgule
Sauf si on le convertit mais là on perd notre optimisation

>Ton code me paraissait faux à cause [...] tableau non initialisé.

Il est vrai qu'il est pas intialisé mais bon si j'écrivais tout le code pour récupérer un pointeur sur les pixels de l'écran proprement depuis le système .... on serait pas rendu
C'est un exemple abstrait

>car non déclaré comme pointeur sur un tableau.

Je le redis une fois de plus "en C un pointeur et un tableau à une dimension sont fondamentalement la meme chose lors de leur utilisation"
Si vous avez appris qque chose de différent à la fac alors votre prof parlait sans comprendre l'ASM ;-P

Ainsi pt[0].ARGB32 et pt->ARGB32 sont en fait la meme chose une fois compilee
Une fois assimilée ceci n'importe qui peut comprendre ce qu'est un pointeur


Alain





Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=2391&forum=14