Sujet : Re: C89 "bug"
De : thiago.adams (at) *nospam* gmail.com (Thiago Adams)
Groupes : comp.lang.cDate : 13. Dec 2024, 16:41:04
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vjhkig$3g4cu$1@dont-email.me>
References : 1 2 3 4
User-Agent : Mozilla Thunderbird
Em 12/13/2024 12:01 PM, Kaz Kylheku escreveu:
On 2024-12-13, Thiago Adams <thiago.adams@gmail.com> wrote:
unfortunately, this solution does not work if we have two objects.
>
union U {
double d;
int i;
};
>
union U u1 = { .d=2.2 };
union U u2 = { .i=1 };
Idea: have several declarations of the union in different translation
units.
/* translation unit for u1 */
union U {
double d;
int i;
};
extern union U u1 = { 2.2 };
/* translation unit for u2 */
union U {
int i;
double d;
};
extern union U u2 = { 1 };
another solution could be call a function that initializes before main.
extern union U u1;
void before_main()
{
u1.d = 1.2;
}