Je suis en train ci-dessous le code:Problème avec l'initialisation du membre du syndicat
typedef union Data
{
int i;
}data;
int main()
{
data d1;
d1.i = 10; // OK
data d3 = {7};// OK
data d2.i = 20; // Gives error
}
Ma question pourquoi il donne erreur pour data d2.i = 20
et travaille pour d'autres?
'data d1 = {7}; // OK' devrait déjà donner une erreur car vous redéfinissez' d1'. –
La dernière ligne déclare la variable 'd2', alors que pour les lignes d'initialisation précédentes, la variable' d1' a déjà été déclarée. la ligne 'd1 = {7}' utilise un type particulier de définition (une liste d'initialisation) où le '{}' dit "mettre ceci dans les membres dans l'ordre indiqué", la dernière ligne n'a pas ceci donc vous essayez pour déclarer une variable de type de données appelée 'd2.i' et donner à l'objet entier une valeur de 20. – Toby