It took me some long time to comprehend the issues involved in using unions, structs, and bit fields in C and C++.
First, for the definition of unions and structs, take a look at this link:
http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/language/ref/strct.htm
Unions could be used together with structs to reinterpret the same location in memory with different interpretations (similar in spirit to the C++ reinterpret_cast). For examples on this see:
http://www.anyexample.com/programming/cplusplus/example_of_using_union_in_cplusplus.xml
C++ extends the unions and structs, for example see:
http://www.yolinux.com/TUTORIALS/LinuxTutorialC++Structures.html
Bit fields are used to define special-sized integers. This is useful for packing data (e.g. flags) together into one memory location. This, however, is a bad habit and should be avoided as the compiler-generated code to access bit fields is usually inefficient! For more examples on this, see:
http://en.wikipedia.org/wiki/Bit_field
http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=/com.ibm.vacpp6m.doc/language/ref/clrc03defbitf.htm
http://www.cs.cf.ac.uk/Dave/C/node13.html
http://www.daniweb.com/forums/thread55765.html
http://blogs.msdn.com/oldnewthing/archive/2008/11/26/9143050.aspx
http://osr507doc.sco.com/en/tools/ANSI_F.3.9_Structs.unions.html
Finally, unions and structs could be anonymous! You do not have to give a name to a union. In this case its members become directly accessible within the same scope. Wikipedia calls this "untagged union". For an example see:
http://www.velocityreviews.com/forums/t286529-union-with-anonymous-struct.html
Popular Posts
-
I just installed a new Fedora 17 system to get familiar with it. Now I am trying to install the brand new ROS Fuerte on this Fedora system ...
-
Recently I needed to add a header/footer to an existing PDF file. With some help from this link, I figured it out: http://coding.derkeiler.c...
-
http://healthcareitnews.eu/content/view/1068/43/
-
Today I tried to compile and install the WFDB tools from the PhysioToolkit ( PhysioNet ) on my Debian Squeeze system. I am documen...
-
http://www.physionet.org/NIH/NIH-PhysioNet-Intro.ppt
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment