website logo
Auteur
avatar
corto

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


Posté : 19-01-2017 17:23 icone du post

Même si on mettait "/ 2", le compilateur génèrerait un shift de 1 bit.

Sinon, tu peux même aller plus loin avec les unions, et c'est plus lisible :

union rgba3D{
ULONG argb32;
struct {
                UBYTE a;
                UBYTE r;
                UBYTE g;
                UBYTE b;
        };
};

Ainsi tu peux faire : pixel.argb32 = 0xaabbccdd;
Et lire la composante rouge avec : pixel.r

J'utilise ça pour manipuler des registres système (avec en plus des champs de bits dans la struct interne )

Message édité par : corto / 19-01-2017 17:24

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