l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
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 :-).


LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
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:
O'Reilly and Associates
For numerous book donations.