kdq@demott.com (Kevin D. Quitt) (01/15/91)
Microsoft C 6.0 accepts:
struct master_log_entry
{
struct log_entry le;
union
{
struct gas_log_entry gle;
struct status_log_entry sle;
struct valve_log_entry vle;
struct heat_log_entry hle;
struct tool_log_entry tle;
struct alarm_log_entry ale;
};
};
struct master_log_entry mle;
then accepts references like:
mle.gle.<reference to inside of gas_log_entry struct>
and:
&mle.gle
without a complaint. Am I just lucky? gcc takes the definitions
(-ansi) but will not compile the code (i.e. `structure has no member named
"gle"').
I really like being able to do that. Anybody got the "Truth"?
--
_
Kevin D. Quitt demott!kdq kdq@demott.com
DeMott Electronics Co. 14707 Keswick St. Van Nuys, CA 91405-1266
VOICE (818) 988-4975 FAX (818) 997-1190 MODEM (818) 997-4496 PEP lasthenry@zoo.toronto.edu (Henry Spencer) (01/16/91)
In article <1991Jan14.225620.9974@demott.com> kdq@demott.com (Kevin D. Quitt) writes: > Microsoft C 6.0 accepts: >struct master_log_entry > { > struct log_entry le; > union > { > struct gas_log_entry gle; > ... > }; > }; > > mle.gle.<reference to inside of gas_log_entry struct> > ... > > without a complaint. Am I just lucky? Yes. Nameless members are illegal in ANSI C (except for the special case of nameless bitfields). Some compilers support this as an extension. -- If the Space Shuttle was the answer, | Henry Spencer at U of Toronto Zoology what was the question? | henry@zoo.toronto.edu utzoo!henry