Je me demandais quel était la différence pour le compilateur entre les 2 type d'unions suivantes, et pourquoi il faudrait préferer l'une à l'autre?

union horizontale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
union  {
  struct{T x, y, z, w;};
  struct{T r, g, b, a;};
  struct{T s, t, p, q;};
};
union verticale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
struct  {
  union{T x, r, s;};
  union{T y, g, t;};
  union{T z, b, p;};
  union{T w, a, q;};
};
Toutes les 2 m'ont l'air gérables, la version horizontale, plus facile à lire IMHO, et plus simple à générer avec une macro.