Sujet : Re: C89 "bug"
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.lang.cDate : 13. Dec 2024, 19:15:32
Autres entêtes
Organisation : None to speak of
Message-ID : <87jzc3v48r.fsf@nosuchdomain.example.com>
References : 1
User-Agent : Gnus/5.13 (Gnus v5.13)
Thiago Adams <
thiago.adams@gmail.com> writes:
Does anyone knows how can I convert this code (external declaration) to C89?
>
union U {
int i;
double d;
};
>
union U u = {.d=1.2};
>
The problem is that in C89 only the first member of the union is
initialized.
The obvious solution is:
union U u;
u.d = 1.2;
But that works only if u has automatic storage duration.
You could also define a function that takes a double argument and
returns a union U result.
Of course the best solution is to use C99 or later, unless there's
some reason you can't.
-- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.comvoid Void(void) { Void(); } /* The recursive call of the void */