Displaying union members' values and show its weakness compared to struct
Compiler: Visual C++ Express Edition 2005
Compiled on Platform: Windows 2003 Server Standard Edition
Header file: Standard
Additional project setting: Set project to be compiled as C++
Project -> your_project_name Properties -> Configuration Properties -> C/C++ -> Advanced -> Compiled As: Compiled as C++ Code (/TP)
Other info: none
To do: Displaying union members' values and show the weakness compared to the struct construct
To show: The union aggregate data type C/C++ program example showing its weakness compared to struct
// This example is C++
// union data type
#include <iostream>
using namespace std;
union sample
{
int p;
float q;
double r;
};
void main(void)
{
// union data type
union sample content;
content.p = 37;
content.q = 1.2765;
cout<<"Display the union storage content\n";
cout<<" ONLY one at a time!\n";
cout<<"---------------------------------\n";
cout<<"Integer: "<<content.p<<"\n";
cout<<"Float : "<<content.q<<"\n";
cout<<"Double : "<<content.r<<"\n";
cout<<"See, some of the contents are rubbish!\n";
content.q = 33.40;
content.r = 123.94;
cout<<"\nInteger: "<<content.p<<"\n";
cout<<"Float : "<<content.q<<"\n";
cout<<"Double : "<<content.r<<"\n";
cout<<"See another inactive contents, rubbish!\n";
cout<<"\nBetter use struct data type!!\n";
}
Output example:
Display the union storage content
ONLY one at a time!
---------------------------------
Integer: 1067672666
Float : 1.2765
Double : -9.25596e+061
See, some of the contents are rubbish!
Integer: -171798692
Float : -4.93268e+032
Double : 123.94
See another inactive contents, rubbish!
Better use struct data type!!
Press any key to continue . . .