Par définition d'une union: vous ne pouvez pas utiliser simultanément v.a
et v.b
parce que les deux champs partagent la même adresse. Pour citer la norme:
Un type d'union décrit un ensemble de recouvrement non vide d'objets membre, chaque qui a un nom spécifié éventuellement et éventuellement type distinct.
Ici, dès que vous attribuez à v.b
, vous substituez v.a
. Dans votre cas, les choses ne deviennent pas moche parce que les deux variables ont le même type, mais imaginez ce que si a
était un float
et b
un caractère par exemple.
Si votre objectif est d'avoir var
être une variable composé qui contient deux différents int
, vous devez utiliser struct
, non union
.
Avez-vous lu la définition de 'union' avant de l'afficher? – ruslik