l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
October 7: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2001 Dec 30 17:08

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
[vox-tech] unions
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vox-tech] unions



From: Joel Baumert <kender@geeksource.net>
To: vox@franz.mother.com
Subject: Re: [vox] [OT] unions
X-Mailer: Mutt 1.0pre3i

A union in the C language is a special structure that allows
parts of memory to overlap.

For example:

typedef union
{
	long x;
	int  y;
	char z;
} MyUnion;

In MyUnion x, y, and z all share the same memory space.  This 
is useful if you have a data structure that either has a small
header to identify what is in the union or which item can be
figured out from the context it is used in.

Unions have fallen out of typical use because they can be
confusing and are a place where there can be hidden consequences
to some action.  The only portability guarantee that I see from
the standard is that the last item stored can be properly
retrieved later.  They are useful within a limited set of problems
because they can allow you to conserve memory with a generic 
data structure...

In the context of the original post, a union is used to represent
different data types in a parser.  The type of the data should be
known from the context in the parser and with that tool (bison) it
is really the only way to go.

It sounds like we agree on "labor" unions :-).

Joel


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!