Учитывая следующее:
typedef struct{
...
...
} A;
typedef struct{
...
...
} B;
typedef union __attribute__((transparent_union)) {
A a;
B b;
} C;
Если я объявляю функцию
myMethod(C){
...
}
Следующее допустимо без явного приведения:
A myA;
B myB;
meMethod(myA);
myMethod(myB);
(из: " c unions and polymorphism")
Однако, почему следующее не разрешено:
C cArray[2];
c[0]=myA;
c[1]=myB;
Это дает ошибку несовместимого типа без явного приведения. Есть ли способ избежать явного приведения?