// ========================================================================== // $Id: union.cpp,v 1.3 2016/09/13 21:51:47 jlang Exp $ // CSI2372 example Code for lecture 2 // ========================================================================== // (C)opyright: // // Jochen Lang // SITE, University of Ottawa // 800 King Edward Ave. // Ottawa, On., K1N 6N5 // Canada. // http://www.site.uottawa.ca // // Creator: jlang (Jochen Lang) // Email: jlang@site.uottawa.ca // ========================================================================== // $Log: union.cpp,v $ // Revision 1.3 2016/09/13 21:51:47 jlang // Added comments improved value // // Revision 1.2 2013/09/16 19:45:21 jlang // Clarified code. // // Revision 1.1 2006/09/07 20:06:17 jlang // Initial check-in lecture 0-2 // // // ========================================================================== #include #include using std::cout; using std::endl; int main() { union ShortChar { short num; char c; }; ShortChar sChar; // all allocated in same memory sChar.c = 'a'; // lifetime of char starts sChar.num = sChar.c + 257; // lifetime of short starts and char ends std::cout << sChar.c << std::endl; // illegal access of char std::cout << sChar.num << std::endl; return 0; }